# Connector repair: pre-change failure classification Status: CONNECTOR_REPAIR_IN_PROGRESS. Observed 2026-09-09 UTC. Before main implementation changes, the main agent reran the isolated suite: 41 total, 14 PASS, 27 FAIL, no skips/errors. This confirms the worker baseline. Source: `scripts/test_v049_mcp_continuity.py`; every test below belongs to `RotationContinuityTests`. Code owner is `scripts/concresca_weaponizedautonomy_mcp.py`; method owners are named per row. The regression test for each row is that exact test ID, retained without an expected-failure exemption. Rows are baseline evidence, not a claim of repair. No production integration credential has been read, written, rotated, revoked, or exposed in this repair phase. No actual ChatGPT test is authorized yet. Reuse the existing connector/native Commons client/canonical runtime. Added protected client-side continuity does not create a credential authority or inbox. ## Each original failure | Test ID | Area | Expected behavior | Observed behavior / root cause | Code owner | Repair | Baseline status | | --- | --- | --- | --- | --- | --- | --- | | test_ambiguous_effect_is_not_reported_as_safe_no_op | sanitized errors; interrupted mutation | Lost response reports uncertain effect | `safeNoOp` always true, even after commit | ConnectorError.public | Structured outcome/retry/next-action; never infer no effect | FAIL | | test_fresh_public_retry_after_lost_committed_response_has_one_effect | lost response; idempotency replay; restart behavior | Retry retained predecessor/candidate/key once | Active-state recovery promotes then public method generates another candidate | rotate_credential; _recover_rotation | Reconcile pending exact request and return its result, not a new rotation | FAIL | | test_fresh_recovery_retries_uncommitted_exact_request | interrupted mutation; restart behavior | Resume original request | Candidate 401 causes pending intent deletion | _recover_rotation | Replay retained request with retained proof | FAIL | | test_normal_rotation_old_still_active_retains_pending | predecessor/successor verification | Old-active blocks promotion | False old-rejected flag does not gate promotion | rotate_credential | Require old /me 401 after verified successor | FAIL | | test_recovery_old_still_active_retains_pending | predecessor/successor verification | Recovery also blocks old-active | Recovery never probes predecessor | _recover_rotation | Share exact verification state machine | FAIL | | test_recovery_old_unavailable_403_retains_proof | malformed/upstream failures; authority verification | 403 is not revocation proof | No predecessor probe | _recover_rotation | Retain intent, report verification unresolved | FAIL | | test_recovery_old_unavailable_503_retains_proof | malformed/upstream failures | 503 leaves uncertain state | No predecessor probe | _recover_rotation | Retain intent and bounded retry indication | FAIL | | test_recovery_old_unavailable_None_retains_proof | lost response | Transport loss is not rejection proof | No predecessor probe | _recover_rotation | Retain intent; uncertain outcome | FAIL | | test_recovery_proves_old_rejection_before_promotion | predecessor/successor verification | Probe exact predecessor before promote | Probe omitted | _recover_rotation | Explicit predecessor_rejection_verifying phase | FAIL | | test_recovery_rejects_changed_agentId | scope verification | Preserve agent ID | Recovery promotes any authenticated candidate | _recover_rotation | Compare all six authority/scope fields plus credential ID/type | FAIL | | test_recovery_rejects_changed_authority | authority verification | Commons-only authority unchanged | Recovery omits authority comparison | _recover_rotation | Reject broader or changed authority | FAIL | | test_recovery_rejects_changed_credentialId | predecessor/successor verification | /me matches prepared successor ID | Recovery omits credential-ID comparison | _recover_rotation | Bind /me to exact candidate | FAIL | | test_recovery_rejects_changed_projectId | scope verification | Project unchanged | Recovery omits project comparison | _recover_rotation | Exact retained project equality | FAIL | | test_recovery_rejects_changed_scopeId | scope verification | Scope ID unchanged | Recovery omits scope-ID comparison | _recover_rotation | Exact retained scope equality | FAIL | | test_recovery_rejects_changed_scopeType | scope verification | Project scope only | Recovery omits scope-type comparison | _recover_rotation | Reject broader/changed scope type | FAIL | | test_recovery_rejects_changed_workspaceId | scope verification | Workspace unchanged | Recovery omits workspace comparison | _recover_rotation | Exact retained workspace equality | FAIL | | test_repeated_deferred_recovery_keeps_original_request | idempotency replay; restart behavior | Each deferral preserves exact intent | Candidate 401 deletes pending request | _recover_rotation | No intent clearing until verified promotion | FAIL | | test_rotation_old_unavailable_403_retains_proof | malformed/upstream failures; authority verification | 403 cannot prove old revoked | Error swallowed; still promotes | rotate_credential | Only exact 401 satisfies predecessor probe | FAIL | | test_rotation_old_unavailable_503_retains_proof | malformed/upstream failures | Preserve pending verification on 503 | Error swallowed; still promotes | rotate_credential | Preserve proof and uncertain state | FAIL | | test_rotation_old_unavailable_None_retains_proof | lost response | Preserve pending verification on timeout | Error swallowed; still promotes | rotate_credential | Preserve proof and uncertain state | FAIL | | test_rotation_rejects_changed_projectId | scope verification | Project unchanged | Initial checks only agent/credential/authority | rotate_credential | Common full-principal validator | FAIL | | test_rotation_rejects_changed_scopeId | scope verification | Scope ID unchanged | Initial scope-ID check absent | rotate_credential | Common full-principal validator | FAIL | | test_rotation_rejects_changed_scopeType | scope verification | Scope type unchanged | Initial scope-type check absent | rotate_credential | Common full-principal validator | FAIL | | test_rotation_rejects_changed_workspaceId | scope verification | Workspace unchanged | Initial workspace check absent | rotate_credential | Common full-principal validator | FAIL | | test_save_verified_predecessor_candidate_and_operation_before_send | credential custody; credential rotation | Fresh full /me principal durable before HTTP | Fresh principal is RAM-only; retained value stale; real WinCred serializer drops it | rotate_credential; WindowsCredentialStateStore | Save exact principal/candidate/operation/key before send; reuse protected custody for durable full state | FAIL | | test_secret_reflected_in_error_metadata_is_redacted | secret leakage prevention; sanitized errors | No reflected bearer in diagnostic | Syntax-only request-ID filter accepts token | ConnectorError; _call | Locally generated correlation; never forward arbitrary upstream diagnostics | FAIL | | test_terminal_candidate_with_active_old_is_not_silently_discarded | credential rotation; revocation | Terminal candidate retains reconciliation proof | Candidate 401 drops pending request before replay detects terminal state | _recover_rotation | Exact replay then deterministic terminal/uncertain result, retain proof | FAIL | ## Required areas not proven by those 41 tests | Area | Current evidence / next regression owner | Status | | --- | --- | --- | | Credential custody | Memory-copy fake only. Add dual-copy adapter over existing machine custody, native isolated durability checks, exclusive transaction, interrupted local saves. | INCOMPLETE | | Credential rotation | Above 27 individual failures; add every persisted phase boundary and completed-operation replay. | INCOMPLETE | | Predecessor/successor verification | Add malformed/missing/expired/type/status fields and retained-proof absence. | INCOMPLETE | | Interrupted mutation | Join/leave/publish/reply/ack/correct/withdraw/revoke need durable exact intent tests, not merely deterministic keys. | INCOMPLETE | | Lost response | Rotation cases exist; remaining mutations need post-transmission and post-commit failures. | INCOMPLETE | | Idempotency replay | Add completed retry and changed-payload/key-conflict cases without new effects. | INCOMPLETE | | Cursor continuity | Current baseline initialization skips tail; missing state is not safe reset. Add stale-cursor/restart recovery. | INCOMPLETE | | Pending-message recovery | Add correction/withdrawal before ack and lost-response exact-binding replay. | INCOMPLETE | | Scope verification | Require exact binding after initialization/restart/recovery, not just rotation. | INCOMPLETE | | Authority verification | No administrative/company-master/unrelated scope; hostile messages never authorize tools. | INCOMPLETE | | Revocation | Existing out-of-band local approval and immediate deletion do not meet autonomous retained-intent retirement. | INCOMPLETE | | Restart behavior | Fresh object is not process-exit evidence; add isolated subprocess boundary checks. | INCOMPLETE | | Sanitized errors | Add deterministic operation/retry/outcome/next-action/correlation without raw upstream metadata. | INCOMPLETE | | Secret leakage prevention | Add hostile/secret-shaped values in all external fields; never create a diagnostics archive. | INCOMPLETE | | Malformed/upstream failures | Add JSON/schema faults and 401/403/409/429/5xx/timeout to all mutation paths. | INCOMPLETE | | Required operations | Compare existing public Commons client and fresh live capabilities; do not invent routes. | INCOMPLETE | | WeaponizedAutonomy handoff | Minimized opaque references and state schema; no raw correspondence copy; verify against its actual owning code. | INCOMPLETE | The next milestone is READY_FOR_CHATGPT_CONNECTION_TEST, not production-ready. All original tests, relevant continuity/security tests, required native operation mappings and sanitized handoff must pass before that milestone or any actual ChatGPT-connected acceptance. The broad autonomous-service goal remains intact.