- Add LexicalResolution dataclass + resolve_entry() in chat/pack_resolver.py
that returns language, root, morphology_id, gloss, semantic_domains from
he/grc/en packs (lru-cached, first-match, full depth support).
- Extend GraphNode (generate/graph_planner.py) with optional language/root/
morphology_id fields (defaults preserve all call sites). Update as_dict()
to include them conditionally. ground_graph() now propagates depth.
- Generalize enrichment in core/cognition/pipeline.py:
- Per-subject resolution map using depth packs.
- Enrich all matching nodes before ground (subject→node map).
- Pass depth alongside recalled_words to ground_graph().
- Consume depth on articulation side:
- realize_semantic() and render_semantic() now accept/use language+root
for etymological/Logos framing on Hebrew/Greek nodes (e.g. "אמת (Hebrew
root: א-מ-ן) is defined as..."). English unchanged.
- Enrich oov_geometric_context with node_depths for future geometric
anti-unification using roots.
- Extend recognition/connector.py to forward depth from EpistemicNode
paths into GraphNode.
- Add full Hebrew turn test under realizer_grounded_authority flag.
- Update related tests (semantic realizer, OOV context, surface resolution).
- Cleaned legacy type() hack immediately on discovery (hard-stop rule).
All targeted tests green (52+ in slices), broad relevant suite 581 passed.
Invariants preserved: versor only at owned boundaries, exact recall,
immutable updates, no new legacy parsers. 3 pillars upheld.
Work continues tomorrow from this checkpoint.
* feat(bench): add Apple UMA demo package builder
* test(bench): cover Apple UMA demo package builder
* docs(outreach): add Apple UMA demo package runbook
* feat(bench): harden Apple UMA demo package workflow
* feat(workbench-ui): add Apple UMA report card route
* feat(workbench-ui): register Apple UMA route
* feat(workbench-ui): expose Apple UMA route path
* feat(workbench-ui): wire Apple UMA report card into route registry
* test(workbench-ui): fix UI and keyboard tests for Apple UMA route integration
Adds ADR-0230 defining the immutable SealedPracticeTrace evidence
envelope after the Contract/Proof Replay Adapter in the residual-gated
practice loop. Docs-only; authorizes the inert shell implementation PR.
- evals/gsm8k_math/train_sample/v1/report.json: rebaselined from
correct=6/refused=44/wrong=0 to correct=30/refused=20/wrong=0.
wrong_ids == []. exit_criterion.passed: false → true.
Written deterministically by the canonical runner (write_report /
json.dumps sort_keys=True).
- docs/sessions/gsm8k-train-proxy-rebaseline-2026-06-20.md: new audit
note documenting why #846's report update was unauthorized, why #847
restored the pin, and why this PR is the explicit authorization
boundary for the committed rebaseline.
- HANDOFF-gpt55-2026-06-20.md: small factual note appended to the
'Latest continuity pointer' section recording this rebaseline status.
Authorization chain:
ADR-0126 (exit criterion) →
#846 kernel changes (produce 30/20/0) →
#847 reconciliation (restores pin, delegates to this PR) →
this PR (explicit rebaseline authorization)
Non-goals: no runtime, serving, teaching, capability, or kernel change.
No quantity-entity work. No new eval artifacts. No teaching proposals.
- Restore evals/gsm8k_math/train_sample/v1/report.json to pre-#846 pin (6/44/0)
The 30/20/0 committed in #846 was generated eval output, not a ratified rebaseline.
Historical pin is required until a dedicated rebaseline PR is explicitly authorized.
- Delete teaching/proposals/comprehension_failures/34ce9254...json
Newly added in #846 without authorization. File did not exist in first parent.
HANDOFF claimed teaching paths were untouched — contradicted by the actual diff.
Proposal must go through the reviewed teaching lifecycle, not committed PRs.
- Add docs/sessions/pr846-reconciliation-audit-2026-06-20.md
Full audit note: what #846 was expected vs. what merged, authorization analysis,
restoration rationale, what was preserved, remaining risk, next correct step.
Tests kept from #846:
- tests/test_problem_frame_builder.py (lint fix: _frame_names -> direct accessor)
- tests/test_problem_frame_skeleton.py (unused ProblemFrame import removed)
Both are valid narrow fixes unrelated to the unauthorized artifacts.
Forbidden paths not touched: algebra, field, vault, recall, identity, policy,
packs, generate/derivation, generate/math_candidate_graph.py, runtime/serving.