The aligner's open questions have a queue - #754
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
WaylandYang
force-pushed
the
feat/the-aligners-open-questions-have-a-queue
branch
from
September 18, 2026 05:29
f36e7dd to
c296bd3
Compare
WaylandYang
deleted the
feat/the-aligners-open-questions-have-a-queue
branch
September 18, 2026 05:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The "Alignment" queue of #725, for the signature half of decision 3 of 0044: what the aligner's two votes could not settle goes to a person, and a person's answer is final.
What lands
A queue in Review. A new rail entry, Alignment, lists two kinds of card, oldest first:
undecided(A phrase binds to a property #751): the phrase, the classes at both ends (or "a value"), how many statements sit under it, the three example statements recorded at decision time, and the two votes. The person picks a property from the base's ontology (attributes for a value signature, relations otherwise) and, for a relation, the direction (as written / reversed), or says none fits;undecided(A kind word binds to a class #741): the word, its spellings, example names, the phrases those things take part in, the count, and the two votes. The person picks a class or says none fits.The select is preset to whatever a vote proposed, so the common case is one click. The rail badge and the overview card count both kinds together.
Two endpoints.
POST /kbs/{id}/review/alignment/phrases/{binding_id}writes the signature's binding as a person's decision (decided_by = 'person', which the agent never overwrites) and recomputes the typed graph at once, returning how many rows were added, merged or retired (shown as a toast).POST /kbs/{id}/review/alignment/kind-words/{kind_word}writes the kind word's binding, applies or removes the class on its entities, and queues a phrase-alignment run, since the signatures of every statement those entities take part in just changed. Both audit.Store.
alignment_queue::listassembles the cards fromphrase_bindings,type_bindingsand the kind-word signature query, with no model call;phrase_bindings::signature_ofreads a binding back as the signature its decision needs;ReviewCounts.alignmentandReviewWaiting.alignmentjoin the seven queues' counts and "oldest waiting since".Checked
Built and type-checked (
pnpm build, style guard clean: the selects are the design system'sSearchSelect), 63 web tests pass, workspace clippy clean. On the e2e base of #751 (10 undecided: 1 phrase, 9 kind words): the queue lists them with their votes; binding "release" to Document removed the card, took the badge from 10 to 9, typed the entity, wrote the binding as the person's, and queued phrase alignment, which ran.UI change: waits for a look before merging. A dev server on
http://localhost:5174(this branch, proxied to the e2e API on 8331) shows the queue on the base "batch review".Not in this change
Implication rules in the queue (the other half of #725's Alignment row); the ontology-proposals queue; "none fits" feeding a proposal for a new property; showing the statements' quotes on a phrase card (the examples are the rendered statements; the quotes would need the chunk).
🤖 Generated with Claude Code