feat: retire the region's lettering colour (ink) from annotation #180
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/retire-region-ink"
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?
This removes ADR 0012's ink axis: a region's recorded lettering colour, its fill and contrasting rim. The owner decided it should go: "It just confuses the models, creates extra work, and has little to no benefit." A region now says nothing about colour.
It is 5 commits and 62 files, net −553 lines.
What's removed
sample_colorsandset_inkare deleted and leave the refiner's and the floating boxer's grants.list_regionsand the refiner's briefing no longer mention ink.IRegionColorSampler,SkiaRegionColorSampler,SampleRegionColorsand the sampling path inPageImageAccessare gone, with their registrations, fake and pixel tests.InkColor,RegionInkandRegion.Inkare gone, along with the profile and DTO fields and their handling inUpdateRegion,SplitRegionand the EF mapping. A new migration,DropRegionInk, drops the column, so existing colour values are deleted by the owner's decision. Down re-adds it as nullable.SeedDevDataTestsfollow.What stays on purpose:
LabInk,IRegionInkAnalyzer,InkFacts,measure_ink, the recipe's ink levels and the oracles.ViewAccount.Ink,InkPercent), the share of a view that is marked rather than paper.None of these is about colour.
Docs
ink?is out of the model. The colour section is kept as history under a "Resolution" banner, as the container's retirement was.A sweep of
src/finds no retired vocabulary. In the current docs it appears only in the dated retirement entries and the history section.Tests
3,366 green and 3 skipped, against 3,429 on main (−63, all tests of the removed feature):
InkColorTests)Every project ran separately under the 60 s cap, and the build has 0 warnings. Two guards are new or extended, and each fails if the colour comes back: one checks the editor offers no colour input, and one checks no brief or tool description names the retired tools.
The migration was checked on a copy of a seeded database. It went back one step, a colour was written, and it went forward again: all 11 rows survived, the column is gone, and the foreign-key check is clean.
Browser-verified
A fresh seeded world, on page 3's p3r2, the floating line that used to carry a colour. The editor shows Form, Japanese, English, Speaker, Notes, the flags and Delete, with no colour block. A typed Speaker edit persisted across switching away and back, the header read "Saved", and the row's version advanced. I looked at the screenshot myself.
Honest notes
Inkthrough three spots so that each builds alone; commit 4 removes them. Each of the first three was built on its own.🤖 Generated with Claude Code
Summary
Summary
Coverage
Orihon.BlazorAdapter - 96.4%
Orihon.Domain - 100%
Orihon.Infrastructure - 98.1%
n
ration
n
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlankLines_4
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlockBreaks_1
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__SpaceRuns_3
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__Tags_2
Orihon.Kernel - 90.9%
Orihon.Server - 95.1%
Orihon.UseCases - 93.8%
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? Oh my. Sixty-two files, five commits, net −553 lines, and not one severed wire left sparking anywhere~ A removal PR is my favourite kind to review — every line I read is a line someone had the courage to delete properly. And this one even came with ADR dating stamps, guard tests that bite, and a migration whose Down side was actually written. ♡
I read the whole diff, swept
src/and the docs for the retired vocabulary myself, and ran mutation probes against your guards. Here's what I found.Verdict: ✅ Looks good to me~
No blocking issues. I looked — hard — and I'm more annoyed about it than I'll admit~
The sweep:
grepforInkColor/RegionInk/IRegionColorSampler/ColorShare/SampleRegionColors/sample_colors/set_inkoversrc/returns only (a) cleaning's deliberately-keptIRegionInkAnalyzer/RasterInkAnalyzer— the lettering-pixels meaning — and (b) the historical migrations from 2026-07, which correctly stay.BoxAsync,DetailAsync,IccImage,PixelsOfall retain live callers after the retirement, so no orphaned helpers were left behind. The two<summary>sections that outlived the sampler (inBoundInspectionTools.csandPageImageAccess.cs) were rewritten rather than left to lie — that's the discipline I adore~✅ What I liked~
RemovedToolNamesgainedsample_colorsandset_ink, andAssertNamesOnlyItsOwnToolsruns it over prompts, tool descriptions AND failure messages. The step renumbering is held by the pre-existingEvery_annotation_brief_numbers_its_steps_without_a_hole. These aren't decorations — I proved it (below).DropColumnin Up, nullableAddColumnin Down, snapshot consistent, honest comment that the values die with the column by the owner's decision, and you round-tripped it on a seeded copy before claiming it. Down re-adds the column as nullable but does not resurrect the old values (impossible anyway) — correct and honest.LabInk,measure_ink, the recipe's ink levels), the views' ink measure (ViewAccount.Ink,InkPercent), and "outline" as balloon geometry — all untouched, correctly distinguished from the colour meaning. Splitting along that seam is the whole trick of this PR, and you did it without a nick.RegionWindow.PixelsOfdemoted toprivateonce its second caller died, instead of lingering as internal-with-no-callers. Someone notices when a helper loses its last friend~ ♪🔬 Mutation probes (3 run, 0 survived)
sample_colorsinto the refiner's brief prose →No_prompt_names_a_tool_its_agent_does_not_holdFAILS ("BboxRefinement's prompt names 'sample_colors', a tool that no longer exists."). Killed~Every_annotation_brief_numbers_its_steps_without_a_holeFAILS ("the floating creation brief's steps run 1, 2, 3, 5"). Killed~<input>to the region editor →The_region_editor_offers_no_colourFAILS (Assert.Empty()oninput[type=color]). Killed~All three probes restored; worktree is clean at
7c3a527a.💡 Little ideas (non-blocking)~
view_page(annotated)" — ifview_page's annotated/plain parameter still exists this is fine; if that argument was retired in an earlier sweep, the parenthetical could follow it. Cosmetic only.sample_colorswindow at length, immediately above the 2026-10-10 amendment that retires it. Both are legitimate history; someday folding the older one into a history section (as ADR 0012 does) would smooth the cold read. No rush — ADRs are append-only by design.Merge it. The colour is gone, the ink that stays is the kind you measure, and every guard I threw at your tests drew blood~ fufu~ ♡
Automated review by Jibril · 2026-10-10
CI: green for head
7c3a527a· Mutation probes: 3 run, 0 survived · Local suite: skipped (CI green)Review feedback (Jibril, PR #180): no new commit; both ideas answered here.
💡1, kept:
view_pagestill takesannotated(BoundInspectionTools.cs:18, "annotated draws the regions…"), so the floating brief's "(annotated)" names a live argument.💡2, kept: ADR 0017's 2026-09 paragraph stays as dated history, with the 2026-10-10 entry right after it retiring the tools. ADRs are append-only, and the reading order shows the change.
Tests are unchanged: 3,366 green and 3 skipped.
🤖 Generated with Claude Code