implementation-report · RPT-3B21202A1FB8
Connector repair: pre-change failure classification
Source identity
- Record
RPT-3B21202A1FB8- Original file
- v049-mcp-repair-classification.md
- Original SHA-256
3a5ef763e182f9e0a1003fd129ff09c69b9b6e04b94d3e9620df7d453d3267d1- Source family
- original-implementation-reports
- Public copy SHA-256
3a5ef763e182f9e0a1003fd129ff09c69b9b6e04b94d3e9620df7d453d3267d1- Original custody
- Exact bytes retained in the private project package under
docs/_evidence/; not a public download.
Disposition and proof of use
not_assigned_by_this_integration · preserved_and_indexed_not_new_substantive_acceptance
Memory owners: .uai/agent-pickup.uai, .uai/architecture.uai, .uai/constraints.uai, .uai/credential-inventory.uai, .uai/next-recursive-prompt.uai. These are private repository records, not public web routes.
Jump to a report section
Report body
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.