feat(ingest): #404 Phase 1 — thread parent_decision_id through natural-format ingest#534
feat(ingest): #404 Phase 1 — thread parent_decision_id through natural-format ingest#534Knapp-Kevin wants to merge 1 commit into
Conversation
…l-format ingest Natural-format ingest now honors a caller-supplied parent_decision_id (previously dropped — only the internal mapping format honored it) by threading it in _normalize_payload; the adapter already reads mapping[parent_decision_id] and persists it. Documents classifier precedence (explicit decision_level wins) in _classify_decision_level. Foundational enabler for #404's hierarchical display; L1 auto-derivation, L3 negative-siblings, and the backfill migration follow in later phases. Governed via /qor-auto-dev-1: independent architect-reviewer audit PASS (daemon-serialization path verified safe), substantiation load-bearing test proven (fails without the fix). META_LEDGER Entry #56 seals this cycle. 🤖 Authored via [Qor-logic SDLC](https://github.com/MythologIQ-Labs-LLC/qor-logic) on [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Merge note (ledger sealing). This PR carries META_LEDGER Entry #56. PRs #535 and #536 deferred their ledger entries to avoid forking the Merkle chain (all three branched off the same dev tip, Entry #55). Cleanest path: merge #534 first (it lands #56); then merge #535/#536 in any order and the deferred entries get reconciled in one follow-up pass (#57/#58, re-chained off the new tip). #524 has no ledger entry (handled pre-seal). Net: merge in whatever order you like — the chain gets fixed up afterward. |
|
Closing during PR hygiene because this branch is stale/conflicting and this is not a top alpha-readiness item. Hierarchical decision display may still be useful, but it should be re-cut against issue #404 only if it is explicitly in product-line scope for the next release. Prefer a small current-dev PR with clear user-facing value over carrying this stale Phase 1 branch. |
Part of #404 (P1) — Phase 1 of 4 (the issue's self-described "smallest enabler").
What
Natural-format ingest now honors a caller-supplied
parent_decision_id. Previously only the internal mapping format honored it; the natural format silently dropped it in_normalize_payload. The adapter already readsmapping["parent_decision_id"](ledger/adapter.py:1460) and persists it — so the fix is to thread it at the single shared normalization point, which both the daemonwrite.ingestdispatcher and the MCP fallback run.Also documents the classifier precedence in
_classify_decision_level(item #5): explicitdecision_levelwins → source-type heuristic → (Phase 2) auto-derivation. No logic change there — precedence already worked (#340).Files
contracts.py—IngestDecision.parent_decision_idhandlers/ingest.py—_normalize_payloadthreadingledger/adapter.py—_classify_decision_leveldocstring (precedence)tests/test_404_natural_format_parent_id.py— sociable test (real adapter overmemory://)docs/META_LEDGER.md— Entry desync optimization V1 — read-path advisory + V2 implementation guide #56 (governance seal)Acceptance criteria covered
parent_decision_iddecision_leveloverrides the source-type heuristicGovernance
ledger/schema.pychange → no §4.7 codeowner gate.handlers/ingest.py:845, so the field rides through and is normalized daemon-side).NONE); restoring makes it PASS.qorlogic verify-ledger).Deferred (later phases of #404)
@jinhongkuanschema-codeowner gate, and the issue's "v23→v24" must be renumbered (v24 is already taken by the input_span-dedup migration).🤖 Authored via Qor-logic SDLC on Claude Code