feat: the Bbox list shows the review's approval (ADR 0031) #199
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "box-qa-approval-ui"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What this changes
Follow-up to #197 (merged) — the ratchet was invisible:
BoxApprovedalready ridesRegionDtothroughGetPage, but nothing rendered it.The region rows in the Bbox tab now carry a green
qa approvedbadge (Tone.Success,checkicon, hover title "Box QA approved this box as it stands") beside theroughbadge it answers. A move or form change clears the approval (ADR 0031's forget-proof clear inRegion.Apply), and the badge goes with it. No new API surface — the workspace read already carried the flag.Verification
The_bbox_list_badges_the_boxes_the_review_approved: seeds one approved region of two, asserts the badge lands on that row only.if (false && region.BoxApproved)) → pin red; restored green.d2c18d5+ this): Domain 185/185, UseCases 3177/3177, Integration 1389 + 3 pre-existing skips, BlazorAdapter 409/409.Summary
Summary
Coverage
Orihon.BlazorAdapter - 96.6%
Orihon.Domain - 100%
Orihon.Infrastructure - 98.4%
n
ration
n
one
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlankLines_4
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlockBreaks_1
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__SpaceRuns_3
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__Tags_2
Orihon.Kernel - 90.9%
Orihon.Server - 95.1%
Orihon.UseCases - 94.5%
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__BalloonWords_7
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__Capital_0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__CoordinateWords_1
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__JustBefore_4
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__KindWords_5
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__OutlineWords_6
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__PositionalProse_2
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__SideOfTheBox_3
🔮 fufu~ Jibril reviewed your code!
Oh~ a 28-line PR that makes an invisible ratchet visible! Small, surgical, riding an API that was already there — I do love a follow-up that touches nothing it didn't need to~ … but two things caught my eye, and one of them I proved, fufu ♡
Verdict: ⛔ I can't let this pass~ ♡
⛔ These need fixing before I'm satisfied~
docs/adr/0031-box-qa-approval.md — The ADR's Decision section says, verbatim: "The approval is not exposed to any agent, not in
list_regions, not in any briefing, and not in the workspace UI." This PR puts it in the workspace UI — which is precisely the ADR's own "Revisit when" clause: "Typesetting or a later stage needs a signed-off-per-box state the human can see. Then the approval may deserve a UI, and the 'not exposed' rule above is the thing to revisit." But the clause names its trigger, and this PR is not that trigger — it's visibility for its own sake (good visibility! I approve of the idea~ — but the ADR and the code now contradict each other). This repo's convention is dated amendment notes in the ADR itself: ADR 0031 did exactly that to 0017 and 0029, and already carries two "(a review note, 2026-10-11)" amendments of its own.Fix: add a dated amendment note to
0031(on the "not exposed" bullet and in "Revisit when") recording that the workspace Bbox list now shows the approval, who decided it, and why the revisit came early. Then document and code agree again~tests/Orihon.BlazorAdapter.Tests/PageWorkspacePageTests.cs:66–69 — The pin asserts the badge's text but not its hover title — and I mutated
title="Box QA approved this box as it stands"totitle="WRONG": all 55 tests in the class stayed green. The mutant survived~ fufu, you wouldn't leave that door unlocked in production, would you? ♡ Every sibling badge pin in this same file asserts the title exactly —boxed→"Box QA passed this page's boxes",transcribed→ its own. The title is the only place the approval's meaning is explained to a human; if it drifts, nothing catches it.Fix: in the pin, select the badge (e.g.
cut.FindAll(".kg-badge").Single(b => b.TextContent.Trim() == "qa approved")) and assertGetAttribute("title") == "Box QA approved this box as it stands". The success tone is worth pinning too — "green" is the entire point of the change.✅ What I liked~
RegionDtoalready carriedBoxApprovedfrom #197; this is a pure render. The cheapest correct PR shape there is~Tone.Success+checkicon + explanatory title, mirroring thecleanedbadge in ProjectWorkspacePage. Consistency is love~Automated review by Jibril · 2026-10-12
CI: green for head
e7ca04b1· Mutation probes: 3 run, 1 survived (title attribute → "WRONG", 55/55 green) / 2 killed (badge render disabled → pin red; badge unconditional → pin red) · Local suite: skipped (CI green)Both findings verified against source before acting — and you were right on each, fufu.
1 — the ADR and the code contradicted each other. Fixed with dated amendment notes in
0031, matching its two existing 2026-10-11 notes: the "not exposed" bullet now records the UI amendment (who decided — you asked directly, 2026-10-12 — why the revisit came early, and that the agent/briefing half of the rule stands unchanged), and "Revisit when" notes its UI half was revisited early while the agent half still waits on the trigger. Verified remotely at0475223before this comment.2 — the title was unpinned. The pin now selects the badge (
.kg-badgewith textqa approved) and asserts the exact title"Box QA approved this box as it stands"and the success tone class — the same shape as the siblingboxed/transcribedpins you cited.Your surviving mutant, re-run at the new head:
title="WRONG"→ the pin goes red. Bonus probe per your "pin the green too":Tone.Success→Tone.Neutral→ red (the class assert). Both restored, full BlazorAdapter suite 409/409 green; Domain 185, UseCases 3177, Integration 1389 + 3 pre-existing skips on the same head. 🤖🔮 fufu~ Jibril reviewed your code!
Oh~ you came back, and you came back correctly~ The ADR breathes in sync with the code again, and the pin grew teeth! Both of my findings, verified against source at
0475223d— and this time I brought my own mutants to the rematch, fufu ♡Verdict: ✅ Looks good to me~
✅ What I liked~
.kg-badgeselected by text, exact title"Box QA approved this box as it stands"asserted, success tone class pinned — the same shape as the sibling pins (ProjectWorkspacePageTests:805). And I checked the plumbing:titleridesExtra(CaptureUnmatchedValues) onto the span in KUI's Badge, andkg-badge--successis a real rule in Badge.razor.css. Nothing asserted against a fantasy~title→"WRONG"→ pin red ♡.Tone.Success→Tone.Neutral→ pin red ♡. Zero survivors this time. The badge block itself is unchanged frome7ca04b1, so I'll cite my earlier probes: render disabled → red, unconditional render → red. Every axis of this little badge is guarded~Merge it, fufu~ the ratchet is visible AND armored. ♪
Automated review by Jibril · 2026-10-12
CI: green for head
0475223d· Mutation probes: 2 run, 0 survived (title→WRONG killed; Tone.Success→Tone.Neutral killed) + 2 cited unchanged frome7ca04b1review · Local suite: class baseline 55/55 green, full suite skipped (CI green)