Skip to content

fix(planner): bind each entity answer to the reading it settles - #87

Merged
jm-rivera merged 2 commits into
devfrom
fix/entity-choice-binding
Oct 27, 2026
Merged

jm-rivera merged 2 commits into
devfrom
fix/entity-choice-binding

Conversation

@jm-rivera

@jm-rivera jm-rivera commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

When “aid from Congo to Congo” produces an entity ambiguity, the donor and recipient offer the same two nodes. Each candidate now carries a pick ID scoped to its requirement and reading. The planner asks about one reading at a time, and submission enforces the user’s latest choice or keeps an unanswered reading unsettled. Choices persist across referrals and are released by free text or an approval-card amendment.

Whole-history copies use their authored requirement’s ID in both displayed picks and ask validation, matching submission’s view of the referral. This keeps a choice made for debt_history bound to debt across later referrals.

Group candidates requested as members are kept under Search’s registered group name and restated with members true and no dcid. The join still uses Search’s candidate label, and a shared same-role group name is admitted when either reading accepts it.

Testing: 3,534 planner, translator, compiler, and planner-seam tests passed locally, including regressions for history-copy picks, contradictory choices, unanswered and skipped questions, and later referrals to the origin. Repository lint and formatting checks and harness source type checks passed.

Both Congo readings of an entity_name_ambiguous referral offered the
same candidates, so a picked node bound to neither entity and a plan
could state the other Congo after the user chose one. Search's group
candidates posted by a registered name with members were dropped.

Each candidate now carries a pick naming its requirement, role, entity
and choice. An ask may offer exactly one reading's picks, and
submission holds each entity to the user's latest pick for its
reading. Members-row group candidates are kept as a name to restate,
and an option that joins no one candidate is refused.

Co-authored-by: Claude <noreply@anthropic.com>
@jm-rivera
jm-rivera marked this pull request as ready for review October 26, 2026 15:57
@jm-rivera
jm-rivera merged commit f25fb83 into dev Oct 27, 2026
3 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant