core/workbench
Shay ac5fb35d45
fix(identity): harden ADR-0220 reconciliation inputs (follow-up to #774) (#776)
The two Gemini robustness nits raced the #774 merge: the patch landed on the
branch after GitHub had merged the pre-patch head, so main shipped the
architecture without the migration-input hardening. This re-lands ONLY the
robustness fixes — no identity-semantics change.

- chat/runtime.py: parse identity_scheme with try/except (TypeError, ValueError)
  -> fallback to legacy scheme 1; revision str(... or '') so a null becomes ''
  (unverifiable -> conservative DIVERGED), not the literal 'None'.
- workbench/readers.py: stored_revision=written_at_revision or '' so a None
  revision is handled identically by the shared reconcile helper.
- tests: malformed identity_scheme does not crash the load guard (migrates);
  reader falls back to legacy on malformed scheme; reader missing revision is a
  conservative break.

Verified: 50 identity/migration/reader tests pass. No lane/serving path touched.
2026-06-15 12:01:29 -07:00
..
__init__.py
api.py workbench(vault): exact-CGA recall evidence for persisted entries (#766) 2026-06-15 02:28:37 -07:00
calibration.py
evidence_bundle.py
field_evidence.py
journal.py
lived_life.py feat(workbench): Lived Life surface — the always-on heartbeat made felt (read-only, persist-first) 2026-06-14 16:45:03 -07:00
logos.py feat(workbench): add read-only core-logos readers 2026-06-14 11:43:39 -07:00
pipeline_record.py
readers.py fix(identity): harden ADR-0220 reconciliation inputs (follow-up to #774) (#776) 2026-06-15 12:01:29 -07:00
replay.py
schemas.py workbench(vault): exact-CGA recall evidence for persisted entries (#766) 2026-06-15 02:28:37 -07:00
server.py
tour.py feat(workbench): Wave M D1+D2 — guided determinism tour (provider-agnostic) 2026-06-13 19:39:41 -07:00