Merge dev → main: family precedents say their reason once; the repeat trigger compares like with like #208

Merged
bvandeusen merged 2 commits from dev into main 2026-10-06 19:00:18 -04:00
Owner

Operator-requested merge ("merge to main and redeploy please"), 2026-10-06.

  • #5131 (f006f15): FamilyDecision.to_brief() gives precedents and get_family_idea's history the reason once, before/after as state only, and the evidence as the cited list. list_family_decisions keeps the full rows. CI run 8396 green.
  • #5130 (5323a1f): the family repeat trigger compares a record only with records of its own kind, snippets with snippets and notes with notes. A release dev-log no longer opens as a candidate off a CI snippet. CI run 8399 green.

🤖 Generated with Claude Code

Operator-requested merge ("merge to main and redeploy please"), 2026-10-06. - **#5131 (f006f15):** `FamilyDecision.to_brief()` gives precedents and get_family_idea's history the reason once, before/after as state only, and the evidence as the cited list. list_family_decisions keeps the full rows. CI run 8396 green. - **#5130 (5323a1f):** the family repeat trigger compares a record only with records of its own kind, snippets with snippets and notes with notes. A release dev-log no longer opens as a candidate off a CI snippet. CI run 8399 green. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 2 commits 2026-10-06 19:00:16 -04:00
fix(family): a decision read as precedent says its reason once - to_brief for precedents and idea history; the decision log keeps the full row (#5131)
CI & Build / Python lint (push) Successful in 2s
CI & Build / Plugin hooks (push) Successful in 14s
CI & Build / TypeScript typecheck (push) Successful in 53s
CI & Build / integration (push) Successful in 1m13s
CI & Build / Python tests (push) Successful in 1m54s
CI & Build / Build & push image (push) Successful in 40s
f006f15058
Each decision stored its reason three times (reason, before.reason, after.reason)
and a promotion carried the whole criteria reasoning in evidence. Precedents
(assess, promote, get_family_adoption, get_family_idea) and get_family_idea's
history now serve FamilyDecision.to_brief(): reason once, before/after as status,
canon_version and platforms, evidence as the cited list. list_family_decisions
and the decision echoed back by a write keep to_dict. The precedent count was
already bounded at five.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(family): the repeat trigger compares a record only with its own kind - a snippet with snippets, a note with notes (#5130)
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 19s
CI & Build / TypeScript typecheck (push) Successful in 56s
CI & Build / integration (push) Successful in 1m38s
CI & Build / Python tests (push) Successful in 2m16s
CI & Build / Build & push image (push) Successful in 32s
5323a1fbc2
A dated release log (a note) matched a signed-APK CI snippet at 0.83 on
shared release vocabulary and was opened as a family candidate, then came
back as a precedent. One chunk of a long narrative scores like the shape
it mentions, so a cross-kind score does not mean "the same thing made
twice". The search is filtered to the new record's kind and the loop
checks it too. Code built from an idea written elsewhere still reaches the
engine through the citation trigger and the shape ledger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bvandeusen merged commit f15542d6cb into main 2026-10-06 19:00:18 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledScribe#208