feat: annotation by purpose 10/11 — the cleaning briefs in plain words #196

Merged
bjoern merged 5 commits from feat/plain-briefs-cleaning into main 2026-10-11 12:58:44 +02:00
Member

This is Phase 6, slice 10 of 11 (PROJECT_PLAN.md; ADR 0030, with ADR 0027's cleaning stage). The cleaning agent's four briefs are rewritten in plain words and pinned sentence by sentence: the survey, the fill-only group, the group with model calls, and the page check. So are its tools, its task messages, the re-arm line and the sentence that comes with every cleaning view. No rule of the stage changes.

What's in

  • The briefs:

    • Each opens with RoleOpener and the purpose, then the words, the steps, the rules with their reasons, and the finish.
    • The two group briefs are now one function rendered twice. The fill-only render keeps only the fill's fixes, and no longer claims the edit model reads the judgement note: the human reads it.
  • Forms are defined once:

    • The survey reads slice 6's TheForms whole.
    • The groups read FormsInShort, which is built in code from TheForms's own lines without the per-form box rules. That saves about 125 words per group, and WhatCleaningTouches's old definitions are gone.
  • Cleaning's own terms are one table, CleaningBlueprints.Terms, with a meaning for each word:

    • the survey, a group, the page check;
    • the fill, the gate, the edit model;
    • a model rect, a candidate, a footprint, a seed;
    • a result;
    • the reading and zoom scores.

    In prose, the edit model's per-rect text is called "the instruction", because "label" already means a region's short name. The label parameter keeps its name.

  • The rubric's verdicts and scores keep the lab's names and meaning (ADR 0021/0027); only the sentences around them are plain. The edit model's two prompts are quoted as they are, as ADR 0030 excludes them.

  • Tools:

    • Every cleaning tool has a plain description, and each of its about 60 parameters a [Description]. CleaningToolSchemaTests (43 cases) checks every description reaches the schema, and that only the parameters a tool refuses without are required.
    • Compare is split in two. The fill-only group's compare takes no candidates or raws. ModelCompareTool is granted only once model calls can run, so the fill-only group never reads model-call words.
    • clean has its own refusal for two windows: "Give own_window or window, not both." Before, it named parameters clean does not take.
  • The cleaning view's sentence now reads "This view shows page pixels …" instead of "Frame …".

  • The re-arm line: "This task runs again because the human pressed Clean. These regions need work again:", then a plain note for each region.

  • Restored in review: the accept rule for a result still being judged. "Accept a result with a 2 at zoom if its reading score is 2 or more. Retries toward a 3 did not make results better." The first rewrite had narrowed it to results already accepted, so a model group could have spent the page's calls retrying, which ADR 0021 forbids.

  • Stored row notes unchanged: CleaningRowNotes (Rearmed/Unfinished/Halted) stays as it is. The code parses those markers on existing rows and no model reads them, so changing them would misread rows saved before the upgrade.

Size

Counted by the size report test, with the brief, tool text and harness text in words:

Task Before After
Survey 1,960 about 1,950
Group, fill only 2,364 2,381
Group with model calls 3,253 3,432 (+5.5%)
Page check 1,159 about 1,190

The tools' own text shrank, even though every parameter gained a description. The instructions grew, because they now carry the word definitions, the forms and a purpose paragraph. The model group's growth is mostly the terms and rules the review asked for. The 3,521 in the plan came from a counter that also counted the task message.

Tests

5,139 green and 3 skipped, against 4,730 on main 1f887ea (+409):

Project Count Change
Domain 179 0
UseCases 3,167 +364 (CleaningTextTests, which replaces CleaningPromptTests and ModelPromptTests)
Integration 1,385 (+3 skipped) +45 (CleaningToolSchemaTests)
BlazorAdapter 408 0

Each project ran separately under the 60 s cap, with 0 build warnings.

  • Guards: all 603 texts on the plain-words lists pass with 0 violations, and an analyser finds 0 of 411 brief sentences unpinned. The cleaning grant guard and the "no advice for a particular model" guard hold.
  • Probes, all killed:
    • implementation: 411 sentence deletions, 32 task-message and view deletions, 46 code arms, 11 restored retired wordings, and 3 schema guards;
    • review round: 60 more;
    • after the rebase, run myself: deleting the restored accept rule, and changing clean's window refusal.
  • Review before the PR: three reviewers checked the behaviour kept, the texts and pins, and the size and scope. They raised 23 findings, 1 of them a blocker: five unpinned brief sentences.
    • 22 are fixed.
    • Finding 13 is fixed in part: the page check's terms gained "edit model", "result" and "footprint", but not "fill" or "candidate", because the page check holds no fill tool and the tool-names check rightly refuses that.
  • Rebased onto main after #193 and #195, with no conflicts.

Left for slice 11

  • About 200 refusals that the cleaning use cases pass through still use the old wording.
  • The data lines keep their format.
  • The Cleaned view still says "scene text".

🤖 Generated with Claude Code

This is Phase 6, slice 10 of 11 (`PROJECT_PLAN.md`; ADR 0030, with ADR 0027's cleaning stage). The cleaning agent's four briefs are rewritten in plain words and pinned sentence by sentence: the survey, the fill-only group, the group with model calls, and the page check. So are its tools, its task messages, the re-arm line and the sentence that comes with every cleaning view. No rule of the stage changes. ## What's in - **The briefs:** - Each opens with `RoleOpener` and the purpose, then the words, the steps, the rules with their reasons, and the finish. - The two group briefs are now one function rendered twice. The fill-only render keeps only the fill's fixes, and no longer claims the edit model reads the judgement note: the human reads it. - **Forms are defined once:** - The survey reads slice 6's `TheForms` whole. - The groups read `FormsInShort`, which is built in code from `TheForms`'s own lines without the per-form box rules. That saves about 125 words per group, and `WhatCleaningTouches`'s old definitions are gone. - **Cleaning's own terms are one table,** `CleaningBlueprints.Terms`, with a meaning for each word: - the survey, a group, the page check; - the fill, the gate, the edit model; - a model rect, a candidate, a footprint, a seed; - a result; - the reading and zoom scores. In prose, the edit model's per-rect text is called "the instruction", because "label" already means a region's short name. The `label` parameter keeps its name. - **The rubric's verdicts and scores keep the lab's names and meaning** (ADR 0021/0027); only the sentences around them are plain. The edit model's two prompts are quoted as they are, as ADR 0030 excludes them. - **Tools:** - Every cleaning tool has a plain description, and each of its about 60 parameters a `[Description]`. `CleaningToolSchemaTests` (43 cases) checks every description reaches the schema, and that only the parameters a tool refuses without are required. - **Compare is split in two.** The fill-only group's `compare` takes no candidates or raws. `ModelCompareTool` is granted only once model calls can run, so the fill-only group never reads model-call words. - `clean` has its own refusal for two windows: "Give `own_window` or `window`, not both." Before, it named parameters `clean` does not take. - **The cleaning view's sentence** now reads "This view shows page pixels …" instead of "Frame …". - **The re-arm line:** "This task runs again because the human pressed Clean. These regions need work again:", then a plain note for each region. - **Restored in review:** the accept rule for a result still being judged. "Accept a result with a 2 at zoom if its reading score is 2 or more. Retries toward a 3 did not make results better." The first rewrite had narrowed it to results already accepted, so a model group could have spent the page's calls retrying, which ADR 0021 forbids. - **Stored row notes unchanged:** `CleaningRowNotes` (Rearmed/Unfinished/Halted) stays as it is. The code parses those markers on existing rows and no model reads them, so changing them would misread rows saved before the upgrade. ## Size Counted by the size report test, with the brief, tool text and harness text in words: | Task | Before | After | |---|---|---| | Survey | 1,960 | about 1,950 | | Group, fill only | 2,364 | 2,381 | | Group with model calls | 3,253 | 3,432 (+5.5%) | | Page check | 1,159 | about 1,190 | The tools' own text shrank, even though every parameter gained a description. The instructions grew, because they now carry the word definitions, the forms and a purpose paragraph. The model group's growth is mostly the terms and rules the review asked for. The 3,521 in the plan came from a counter that also counted the task message. ## Tests 5,139 green and 3 skipped, against 4,730 on main 1f887ea (+409): | Project | Count | Change | |---|---|---| | Domain | 179 | 0 | | UseCases | 3,167 | +364 (`CleaningTextTests`, which replaces `CleaningPromptTests` and `ModelPromptTests`) | | Integration | 1,385 (+3 skipped) | +45 (`CleaningToolSchemaTests`) | | BlazorAdapter | 408 | 0 | Each project ran separately under the 60 s cap, with 0 build warnings. - **Guards:** all 603 texts on the plain-words lists pass with 0 violations, and an analyser finds 0 of 411 brief sentences unpinned. The cleaning grant guard and the "no advice for a particular model" guard hold. - **Probes, all killed:** - implementation: 411 sentence deletions, 32 task-message and view deletions, 46 code arms, 11 restored retired wordings, and 3 schema guards; - review round: 60 more; - after the rebase, run myself: deleting the restored accept rule, and changing `clean`'s window refusal. - **Review before the PR:** three reviewers checked the behaviour kept, the texts and pins, and the size and scope. They raised 23 findings, 1 of them a blocker: five unpinned brief sentences. - 22 are fixed. - Finding 13 is fixed in part: the page check's terms gained "edit model", "result" and "footprint", but not "fill" or "candidate", because the page check holds no `fill` tool and the tool-names check rightly refuses that. - **Rebased** onto main after #193 and #195, with no conflicts. ## Left for slice 11 - About 200 refusals that the cleaning use cases pass through still use the old wording. - The data lines keep their format. - The Cleaned view still says "scene text". 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Every cleaning tool says what it does in its description and what each
parameter takes in its own, in the schema the model reads. The results and
refusals the tools write are named and plain, and a label the page lacks
points at the read each task holds. The survey's, a group's and the page
check's task messages list each region with its details as items of their
own. Orihon's note on a row Clean queued again names the human's press and
why each region needs work again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The sentences that come with every crop and compare name the page pixels and
the zoom of the view, how large a page pixel is, where the grid lines fall,
any stretch or difference, and how many images it comes in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each cleaning brief opens with the role, what its output is for and what goes
wrong when it is wrong, then the words it uses, its steps and its rules, each
with its reason. The forms are the box job's, written once: the survey reads
them whole, and a group reads each form without the box it gets. The edit
model's two templates are quoted as they are, the rubric keeps the cleaning
lab's verdicts in a list, and what fixes each verdict names only the tools
the group holds. The texts are on the plain-words checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix: the cleaning texts say each rule once and true, and every brief sentence fails its own pin
All checks were successful
CI / build (pull_request) Successful in 46s
CI / test (pull_request) Successful in 3m12s
ee7eafd1e8
- A zoom-2 result is accepted, never retried toward a 3; a fill-only group finalizes once it has judged each
  fill, hears no "nothing fixes it" case and no candidate in any tool or parameter (its compare takes no
  candidates or raws); clean refuses both windows in its own words.
- The cleaning terms add group, rect and verdict, a result is defined without the model's names, and the page
  check reads the terms it uses. The survey's purpose gives a true reason, and its cap rule covers view_page.
- The page check lists its flaws once and names a zoom-only flaw in its account; the label rules match the
  lint; recomposite's result is a result, judged then accepted or rejected.
- The task message no longer repeats the fill-only brief; SecondViews no longer repeats measure_ink.
- The grant guard reads every parameter description; measure_ink's answer and finalize's outcomes are on the
  covered list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

🔄 Auto-updating coverage report — this comment is regenerated on every push, so the numbers below always reflect the commit shown here, not the branch tip.

Commit: 7b4d028 · Generated: 2026-10-11 10:54:25 UTC · Revision: #2

Summary

Summary
Generated on: 10/11/2026 - 10:54:25
Coverage date: 10/11/2026 - 10:52:22 - 10/11/2026 - 10:54:21
Parser: MultiReport (4x Cobertura)
Assemblies: 6
Classes: 938
Files: 417
Line coverage: 97.2% (49112 of 50521)
Covered lines: 49112
Uncovered lines: 1409
Coverable lines: 50521
Total lines: 78037
Branch coverage: 88.9% (10186 of 11448)
Covered branches: 10186
Total branches: 11448
Method coverage: Feature is only available for sponsors

Coverage

Orihon.BlazorAdapter - 96.6%
Name Line Branch
Orihon.BlazorAdapter 96.6% 91.2%
Orihon.BlazorAdapter.Bible.AddBeatRowRequested 100%
Orihon.BlazorAdapter.Bible.AddCharacterRowRequested 100%
Orihon.BlazorAdapter.Bible.AddGlossaryRowRequested 100%
Orihon.BlazorAdapter.Bible.AddHouseRuleRowRequested 100%
Orihon.BlazorAdapter.Bible.AddLoreRowRequested 100%
Orihon.BlazorAdapter.Bible.BibleEffects 89.8% 76.9%
Orihon.BlazorAdapter.Bible.BibleLoaded 100%
Orihon.BlazorAdapter.Bible.BiblePage 92.3% 80.5%
Orihon.BlazorAdapter.Bible.BibleReducers 90.6%
Orihon.BlazorAdapter.Bible.BibleState 100%
Orihon.BlazorAdapter.Bible.BibleWriteFailed 100%
Orihon.BlazorAdapter.Bible.DeleteBeatRowRequested 100%
Orihon.BlazorAdapter.Bible.DeleteCharacterRowRequested 100%
Orihon.BlazorAdapter.Bible.DeleteGlossaryRowRequested 100%
Orihon.BlazorAdapter.Bible.DeleteHouseRuleRowRequested 0%
Orihon.BlazorAdapter.Bible.DeleteLoreRowRequested 0%
Orihon.BlazorAdapter.Bible.LoadBible 100%
Orihon.BlazorAdapter.Bible.ReorderBeatsRequested 0%
Orihon.BlazorAdapter.Bible.SaveOverviewRequested 100%
Orihon.BlazorAdapter.Bible.SaveSummaryRequested 100%
Orihon.BlazorAdapter.Bible.UpdateBeatRowRequested 100%
Orihon.BlazorAdapter.Bible.UpdateCharacterRowRequested 100%
Orihon.BlazorAdapter.Bible.UpdateGlossaryRowRequested 100%
Orihon.BlazorAdapter.Bible.UpdateHouseRuleRowRequested 100%
Orihon.BlazorAdapter.Bible.UpdateLoreRowRequested 100%
Orihon.BlazorAdapter.BlazorAdapterAssembly 100%
Orihon.BlazorAdapter.PageWorkspace.BoxSendBackRefused 100%
Orihon.BlazorAdapter.PageWorkspace.CleanedDraft 100%
Orihon.BlazorAdapter.PageWorkspace.CleanedView 100% 100%
Orihon.BlazorAdapter.PageWorkspace.CleaningReprocessSent 100%
Orihon.BlazorAdapter.PageWorkspace.CreateRegionRequested 100%
Orihon.BlazorAdapter.PageWorkspace.DeletePageSummaryRequested 100%
Orihon.BlazorAdapter.PageWorkspace.DeleteRegionRequested 100%
Orihon.BlazorAdapter.PageWorkspace.LoadPageCleaning 100%
Orihon.BlazorAdapter.PageWorkspace.LoadPageWorkspace 100%
Orihon.BlazorAdapter.PageWorkspace.MatchSourceToBoxRequested 100%
Orihon.BlazorAdapter.PageWorkspace.PageCleaningLoaded 100%
Orihon.BlazorAdapter.PageWorkspace.PageStepsLoaded 100%
Orihon.BlazorAdapter.PageWorkspace.PageSummarySaved 100%
Orihon.BlazorAdapter.PageWorkspace.PageViewport 100% 100%
Orihon.BlazorAdapter.PageWorkspace.PageWorkspaceEffects 100% 100%
Orihon.BlazorAdapter.PageWorkspace.PageWorkspaceLoaded 100%
Orihon.BlazorAdapter.PageWorkspace.PageWorkspacePage 96.8% 92.4%
Orihon.BlazorAdapter.PageWorkspace.PageWorkspaceReducers 100% 68.7%
Orihon.BlazorAdapter.PageWorkspace.PageWorkspaceState 100%
Orihon.BlazorAdapter.PageWorkspace.PageWriteFailed 100%
Orihon.BlazorAdapter.PageWorkspace.PickCandidateRequested 100%
Orihon.BlazorAdapter.PageWorkspace.RegionCreated 100%
Orihon.BlazorAdapter.PageWorkspace.RegionSaved 100%
Orihon.BlazorAdapter.PageWorkspace.ReorderRegionsRequested 100%
Orihon.BlazorAdapter.PageWorkspace.ReprocessCleaningRequested 100%
Orihon.BlazorAdapter.PageWorkspace.ReprocessPageRequested 100%
Orihon.BlazorAdapter.PageWorkspace.ReprocessTranscriptionRequested 100%
Orihon.BlazorAdapter.PageWorkspace.ReprocessTranslationRequested 100%
Orihon.BlazorAdapter.PageWorkspace.RunBoxAgainRequested 100%
Orihon.BlazorAdapter.PageWorkspace.RunTranscriptionAgainRequested 100%
Orihon.BlazorAdapter.PageWorkspace.SavePageSummaryRequested 100%
Orihon.BlazorAdapter.PageWorkspace.SaveRegionRequested 100%
Orihon.BlazorAdapter.PageWorkspace.SetPageMetaRequested 100%
Orihon.BlazorAdapter.PageWorkspace.TextReviewNoteLoaded 100%
Orihon.BlazorAdapter.PageWorkspace.TranscriptionSendBackRefused 100%
Orihon.BlazorAdapter.Projects.CreateProjectRequested 100%
Orihon.BlazorAdapter.Projects.DecideSetupContinuation 100%
Orihon.BlazorAdapter.Projects.DeleteProjectRequested 100%
Orihon.BlazorAdapter.Projects.FinishSetupRequested 100%
Orihon.BlazorAdapter.Projects.ImportPagesRequested 100%
Orihon.BlazorAdapter.Projects.LoadWizard 100%
Orihon.BlazorAdapter.Projects.PageOrganizer 96% 95%
Orihon.BlazorAdapter.Projects.PagesImported 100%
Orihon.BlazorAdapter.Projects.ProjectDeleteFailed 100%
Orihon.BlazorAdapter.Projects.ProjectListEffects 100% 100%
Orihon.BlazorAdapter.Projects.ProjectListPage 89.7% 91.6%
Orihon.BlazorAdapter.Projects.ProjectListReducers 100%
Orihon.BlazorAdapter.Projects.ProjectListState 100%
Orihon.BlazorAdapter.Projects.ProjectsLoaded 100%
Orihon.BlazorAdapter.Projects.ProjectWizardEffects 93.8% 90%
Orihon.BlazorAdapter.Projects.ProjectWizardPage 95.3% 84.1%
Orihon.BlazorAdapter.Projects.ProjectWizardReducers 100%
Orihon.BlazorAdapter.Projects.ProjectWizardState 100%
Orihon.BlazorAdapter.Projects.SetupChat 93.5% 100%
Orihon.BlazorAdapter.Projects.SetupChatEffects 100% 100%
Orihon.BlazorAdapter.Projects.SetupChatFailed 100%
Orihon.BlazorAdapter.Projects.SetupChatReducers 100%
Orihon.BlazorAdapter.Projects.SetupChatState 100%
Orihon.BlazorAdapter.Projects.SetupChatUpdated 100%
Orihon.BlazorAdapter.Projects.StartSetupChat 100%
Orihon.BlazorAdapter.Projects.SubmitSetupAnswer 100%
Orihon.BlazorAdapter.Projects.WizardDeletePagesRequested 100%
Orihon.BlazorAdapter.Projects.WizardLoaded 100%
Orihon.BlazorAdapter.Projects.WizardMovePagesRequested 100%
Orihon.BlazorAdapter.Projects.WizardMovePagesToNewChapterRequested 100%
Orihon.BlazorAdapter.Projects.WizardReorderPagesRequested 100%
Orihon.BlazorAdapter.Projects.WizardWriteFailed 100%
Orihon.BlazorAdapter.Rulings.AcceptProposalRequested 100%
Orihon.BlazorAdapter.Rulings.AnsweredRuling 100%
Orihon.BlazorAdapter.Rulings.AnswerRulingRequested 100%
Orihon.BlazorAdapter.Rulings.DeclineProposalRequested 100%
Orihon.BlazorAdapter.Rulings.DismissRulingRequested 100%
Orihon.BlazorAdapter.Rulings.RulingBar 100% 96.4%
Orihon.BlazorAdapter.Rulings.RulingDeskBridge 94.2% 91.6%
Orihon.BlazorAdapter.Rulings.RulingsEffects 95.4% 83.3%
Orihon.BlazorAdapter.Rulings.RulingsLoaded 100%
Orihon.BlazorAdapter.Rulings.RulingsReducers 100%
Orihon.BlazorAdapter.Rulings.RulingsState 100%
Orihon.BlazorAdapter.Rulings.RulingWriteFailed 100%
Orihon.BlazorAdapter.Rulings.SaveAnswerAsHouseRuleRequested 100%
Orihon.BlazorAdapter.Runs.CancelMonitorRun 100%
Orihon.BlazorAdapter.Runs.MonitorPageRef 100%
Orihon.BlazorAdapter.Runs.MonitorRunLoaded 100%
Orihon.BlazorAdapter.Runs.RetryMonitorExecution 100%
Orihon.BlazorAdapter.Runs.RunChangedBridge 95% 92.8%
Orihon.BlazorAdapter.Runs.RunMonitor 98.2% 94.4%
Orihon.BlazorAdapter.Runs.RunMonitorEffects 100% 92.8%
Orihon.BlazorAdapter.Runs.RunMonitorReducers 100%
Orihon.BlazorAdapter.Runs.RunMonitorState 100%
Orihon.BlazorAdapter.Settings.AgentDebriefsLoaded 100%
Orihon.BlazorAdapter.Settings.AgentDebriefsLoadFailed 100%
Orihon.BlazorAdapter.Settings.AgentEffortPicked 100%
Orihon.BlazorAdapter.Settings.AgentEffortSaved 100%
Orihon.BlazorAdapter.Settings.AgentEffortSaveFailed 100%
Orihon.BlazorAdapter.Settings.AgentFeedbackLoaded 100%
Orihon.BlazorAdapter.Settings.AgentFeedbackLoadFailed 0%
Orihon.BlazorAdapter.Settings.AgentModelPicked 100%
Orihon.BlazorAdapter.Settings.AgentModelSaved 100%
Orihon.BlazorAdapter.Settings.AgentModelSaveFailed 100%
Orihon.BlazorAdapter.Settings.AgentRoutingPicked 100%
Orihon.BlazorAdapter.Settings.AgentRoutingSaved 100%
Orihon.BlazorAdapter.Settings.AgentRoutingSaveFailed 0%
Orihon.BlazorAdapter.Settings.AgentTranscriptsLoaded 100%
Orihon.BlazorAdapter.Settings.AgentTranscriptsLoadFailed 0%
Orihon.BlazorAdapter.Settings.CleaningInFlightPicked 100%
Orihon.BlazorAdapter.Settings.CleaningInFlightSaveFailed 100%
Orihon.BlazorAdapter.Settings.CleaningResumed 100%
Orihon.BlazorAdapter.Settings.CleaningRunnerLoaded 100%
Orihon.BlazorAdapter.Settings.CleaningServerChecked 100%
Orihon.BlazorAdapter.Settings.CleaningServerSaved 100%
Orihon.BlazorAdapter.Settings.CleaningServerSaveFailed 100%
Orihon.BlazorAdapter.Settings.EffortOption 100% 100%
Orihon.BlazorAdapter.Settings.KeySaved 100%
Orihon.BlazorAdapter.Settings.KeySaveFailed 100%
Orihon.BlazorAdapter.Settings.ModelOptionsLoaded 100%
Orihon.BlazorAdapter.Settings.ModelOptionsUnavailable 100%
Orihon.BlazorAdapter.Settings.ResumeCleaningFailed 100%
Orihon.BlazorAdapter.Settings.RoutingOption 100% 100%
Orihon.BlazorAdapter.Settings.RunConcurrencyPicked 100%
Orihon.BlazorAdapter.Settings.RunConcurrencySaveFailed 100%
Orihon.BlazorAdapter.Settings.SaveCleaningServerRequested 100%
Orihon.BlazorAdapter.Settings.SaveKeyRequested 100%
Orihon.BlazorAdapter.Settings.SettingsEffects 92.3% 83.3%
Orihon.BlazorAdapter.Settings.SettingsLoaded 100%
Orihon.BlazorAdapter.Settings.SettingsPage 97.7% 91.5%
Orihon.BlazorAdapter.Settings.SettingsReducers 96.1% 64.2%
Orihon.BlazorAdapter.Settings.SettingsState 100%
Orihon.BlazorAdapter.Settings.TranscriptFilterPicked 100%
Orihon.BlazorAdapter.Settings.TranscriptPagePicked 100%
Orihon.BlazorAdapter.Settings.TranscriptPicked 100%
Orihon.BlazorAdapter.Settings.TranscriptTextLoaded 100%
Orihon.BlazorAdapter.Settings.TranscriptTextLoadFailed 100%
Orihon.BlazorAdapter.Uploads.UploadTransfer 96.5% 100%
Orihon.BlazorAdapter.Uploads.UploadTransferProgress 100% 100%
Orihon.BlazorAdapter.Uploads.UploadTransferResult 100%
Orihon.BlazorAdapter.Workspace.BoxAnswered 100%
Orihon.BlazorAdapter.Workspace.CleanAnswered 100%
Orihon.BlazorAdapter.Workspace.CreateChapterRequested 100%
Orihon.BlazorAdapter.Workspace.DeleteChapterRequested 100%
Orihon.BlazorAdapter.Workspace.DeletePageRequested 100%
Orihon.BlazorAdapter.Workspace.DeleteSummaryRequested 100%
Orihon.BlazorAdapter.Workspace.LoadProjectWorkspace 100%
Orihon.BlazorAdapter.Workspace.MovePageRequested 100%
Orihon.BlazorAdapter.Workspace.ProjectMetadataCard 95.6% 92.8%
Orihon.BlazorAdapter.Workspace.ProjectMetadataSaved 100%
Orihon.BlazorAdapter.Workspace.ProjectWorkspaceEffects 100% 100%
Orihon.BlazorAdapter.Workspace.ProjectWorkspaceLoaded 100%
Orihon.BlazorAdapter.Workspace.ProjectWorkspacePage 95.8% 87.7%
Orihon.BlazorAdapter.Workspace.ProjectWorkspaceReducers 100% 62.5%
Orihon.BlazorAdapter.Workspace.ProjectWorkspaceState 100%
Orihon.BlazorAdapter.Workspace.RenameChapterRequested 100%
Orihon.BlazorAdapter.Workspace.ReorderChaptersRequested 100%
Orihon.BlazorAdapter.Workspace.ReorderPagesRequested 100%
Orihon.BlazorAdapter.Workspace.RunBibleRequested 100%
Orihon.BlazorAdapter.Workspace.RunBoxRequested 100%
Orihon.BlazorAdapter.Workspace.RunCleanRequested 100%
Orihon.BlazorAdapter.Workspace.RunTranscriptionRequested 100%
Orihon.BlazorAdapter.Workspace.RunTranslationRequested 100%
Orihon.BlazorAdapter.Workspace.SaveProjectMetadataRequested 100%
Orihon.BlazorAdapter.Workspace.SaveSummaryRequested 100%
Orihon.BlazorAdapter.Workspace.SetPageKindRequested 100%
Orihon.BlazorAdapter.Workspace.SummaryDeleted 100%
Orihon.BlazorAdapter.Workspace.SummarySaved 100%
Orihon.BlazorAdapter.Workspace.TranscribeAnswered 100%
Orihon.BlazorAdapter.Workspace.WorkspaceImportRequested 100%
Orihon.BlazorAdapter.Workspace.WorkspaceWriteFailed 100%
Orihon.Domain - 100%
Name Line Branch
Orihon.Domain 100% 100%
Orihon.Domain.Agents.AgentDebrief 100% 100%
Orihon.Domain.Agents.AgentDescriptor 100% 100%
Orihon.Domain.Agents.AgentFeedback 100% 100%
Orihon.Domain.Agents.AgentRoster 100% 100%
Orihon.Domain.Agents.InvocationBudget 100%
Orihon.Domain.Bible.Character 100% 100%
Orihon.Domain.Bible.GlossaryEntry 100% 100%
Orihon.Domain.Bible.HouseRule 100%
Orihon.Domain.Bible.LoreEntry 100% 100%
Orihon.Domain.Bible.PageSummary 100%
Orihon.Domain.Bible.StoryBeat 100%
Orihon.Domain.Bible.StoryOverview 100%
Orihon.Domain.Cleaning.AppliedResult 100%
Orihon.Domain.Cleaning.CleaningBasis 100%
Orihon.Domain.Cleaning.CleaningCall 100% 100%
Orihon.Domain.Cleaning.CleaningCallRect 100%
Orihon.Domain.Cleaning.CleaningCanvas 100%
Orihon.Domain.Cleaning.CleaningClause 100%
Orihon.Domain.Cleaning.CleaningEdit 100% 100%
Orihon.Domain.Cleaning.CleaningJudgement 100%
Orihon.Domain.Cleaning.CleaningOutput 100% 100%
Orihon.Domain.Cleaning.CleaningOverrides 100%
Orihon.Domain.Cleaning.CleaningServerIdentity 100%
Orihon.Domain.Cleaning.CleaningServerState 100% 100%
Orihon.Domain.Cleaning.CleaningVerdicts 100% 100%
Orihon.Domain.Cleaning.CleaningViewRecord 100% 100%
Orihon.Domain.Cleaning.CleaningWindow 100%
Orihon.Domain.Cleaning.EditedRegion 100%
Orihon.Domain.Cleaning.PageBox 100% 100%
Orihon.Domain.Cleaning.PageCleaning 100% 100%
Orihon.Domain.Cleaning.PlannedCleaningCall 100%
Orihon.Domain.Cleaning.RegionCleaning 100% 100%
Orihon.Domain.Cleaning.RegionShape 100%
Orihon.Domain.Cleaning.ResultSource 100% 100%
Orihon.Domain.Cleaning.ViewTile 100%
Orihon.Domain.Projects.Project 100% 100%
Orihon.Domain.Projects.ProjectProfile 100%
Orihon.Domain.Runs.Execution 100% 100%
Orihon.Domain.Runs.RegionProblem 100%
Orihon.Domain.Runs.Run 100%
Orihon.Domain.Settings.AppSetting 100%
Orihon.Domain.Text 100% 100%
Orihon.Domain.Translation.BoundingBox 100% 100%
Orihon.Domain.Translation.Chapter 100%
Orihon.Domain.Translation.Page 100% 100%
Orihon.Domain.Translation.Region 100% 100%
Orihon.Domain.Translation.RegionProfile 100%
Orihon.Infrastructure - 98.3%
Name Line Branch
Orihon.Infrastructure 98.3% 87.3%
Orihon.Infrastructure.Agents.EfAgentDebriefStore 100%
Orihon.Infrastructure.Agents.EfAgentFeedbackStore 100%
Orihon.Infrastructure.Bible.EfBibleStore 95.2% 92.8%
Orihon.Infrastructure.Cleaning.EfCleaningCallStore 98.8% 100%
Orihon.Infrastructure.Cleaning.EfCleaningStateStore 100% 100%
Orihon.Infrastructure.DependencyInjection 100% 100%
Orihon.Infrastructure.Gateways.AgentToolAdapter 100%
Orihon.Infrastructure.Gateways.AgentToolAdapter`1 100% 100%
Orihon.Infrastructure.Gateways.AgentTranscript 95.6% 89%
Orihon.Infrastructure.Gateways.Cleaning.BoxChecks 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.DerivedInk 100%
Orihon.Infrastructure.Gateways.Cleaning.EdgeMetrics 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.FillResult 100%
Orihon.Infrastructure.Gateways.Cleaning.GateStats 100%
Orihon.Infrastructure.Gateways.Cleaning.GreyRule 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.LabComposite 100% 98.2%
Orihon.Infrastructure.Gateways.Cleaning.LabFill 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.LabGeometry 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.LabInk 100% 98.3%
Orihon.Infrastructure.Gateways.Cleaning.LabMetrics 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.LabPaper 100% 97.3%
Orihon.Infrastructure.Gateways.Cleaning.LabReadings 100%
Orihon.Infrastructure.Gateways.Cleaning.LabTone 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.PageRects 100%
Orihon.Infrastructure.Gateways.Cleaning.PaperComponent 100%
Orihon.Infrastructure.Gateways.Cleaning.PatchPixels 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.RasterCleaningCompositor 100% 98%
Orihon.Infrastructure.Gateways.Cleaning.RasterCleaningImages 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.RasterCleaningMetrics 100% 97.3%
Orihon.Infrastructure.Gateways.Cleaning.RasterCleaningViews 99.4% 98.3%
Orihon.Infrastructure.Gateways.Cleaning.RasterInkAnalyzer 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.RasterPlateComposer 100% 100%
Orihon.Infrastructure.Gateways.Cleaning.Rgb 100%
Orihon.Infrastructure.Gateways.Cleaning.ToneCurve 100%
Orihon.Infrastructure.Gateways.Cleaning.ViewTiling 100% 100%
Orihon.Infrastructure.Gateways.FileSystemAgentTranscriptStore 85.2% 80.8%
Orihon.Infrastructure.Gateways.HttpWebPageFetcher 95.1% 83.3%
Orihon.Infrastructure.Gateways.LabelFont 100% 50%
Orihon.Infrastructure.Gateways.OpenRouterLlmGateway 90.2% 82.1%
Orihon.Infrastructure.Gateways.QwenImageServerGateway 96.7% 90%
Orihon.Infrastructure.Gateways.QwenImageServerJson 96% 72.3%
Orihon.Infrastructure.Gateways.Raster.FloatImage 77.7% 50%
Orihon.Infrastructure.Gateways.Raster.GrayImage 95.8% 75%
Orihon.Infrastructure.Gateways.Raster.Labels 100% 100%
Orihon.Infrastructure.Gateways.Raster.Mask 99.1% 98.5%
Orihon.Infrastructure.Gateways.Raster.NumpyMath 95.1% 95%
Orihon.Infrastructure.Gateways.Raster.PillowBlur 98.4% 89.4%
Orihon.Infrastructure.Gateways.Raster.PillowLanczos 100% 100%
Orihon.Infrastructure.Gateways.Raster.PixelBox 100% 100%
Orihon.Infrastructure.Gateways.Raster.RgbImage 96.4% 75%
Orihon.Infrastructure.Gateways.Raster.ScipyGaussian 100% 100%
Orihon.Infrastructure.Gateways.SkiaImages 100% 100%
Orihon.Infrastructure.Gateways.SkiaPageImageRenderer 97.4% 90.8%
Orihon.Infrastructure.Gateways.SkiaPixelDigest 100% 100%
Orihon.Infrastructure.Gateways.UntaggedPng 100% 100%
Orihon.Infrastructure.Persistence.Configurations.AgentDebriefConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.AgentFeedbackConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.AppSettingConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.ChapterConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.CharacterConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.CleaningCallConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.CleaningEditConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.CleaningOutputConfiguratio
n
100%
Orihon.Infrastructure.Persistence.Configurations.CleaningServerStateConfigu
ration
100%
Orihon.Infrastructure.Persistence.Configurations.CleaningViewConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.ExecutionConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.GlossaryEntryConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.HouseRuleConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.JsonColumnMapper 100%
Orihon.Infrastructure.Persistence.Configurations.LoreEntryConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.PageCleaningConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.PageConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.PageSummaryConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.ProjectConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.RegionCleaningConfiguratio
n
100%
Orihon.Infrastructure.Persistence.Configurations.RegionConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.RunConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.StoryBeatConfiguration 100%
Orihon.Infrastructure.Persistence.Configurations.StoryOverviewConfiguration 100%
Orihon.Infrastructure.Persistence.Converters.UtcTicksConverter 100%
Orihon.Infrastructure.Persistence.Migrations.AddAgentDebriefs 99.5%
Orihon.Infrastructure.Persistence.Migrations.AddAgentFeedback 99.5%
Orihon.Infrastructure.Persistence.Migrations.AddAppSettings 99.3%
Orihon.Infrastructure.Persistence.Migrations.AddCleaningCallAttempt 99.6%
Orihon.Infrastructure.Persistence.Migrations.AddCleaningCallCanvasMode 99.6%
Orihon.Infrastructure.Persistence.Migrations.AddCleaningCallRunner 99.3%
Orihon.Infrastructure.Persistence.Migrations.AddCleaningStageFacts 99.1%
Orihon.Infrastructure.Persistence.Migrations.AddCleaningState 99.1%
Orihon.Infrastructure.Persistence.Migrations.AddExecutionFeedbackRegions 99.3%
Orihon.Infrastructure.Persistence.Migrations.AddExecutionSentBackBy 99.6%
Orihon.Infrastructure.Persistence.Migrations.AddHouseRules 99.6%
Orihon.Infrastructure.Persistence.Migrations.AddPagePassFacts 99%
Orihon.Infrastructure.Persistence.Migrations.AddProjectSourceLanguage 99.3%
Orihon.Infrastructure.Persistence.Migrations.AddRegionFitBoxDropFillHints 98.1%
Orihon.Infrastructure.Persistence.Migrations.AddRegionForm 99.4%
Orihon.Infrastructure.Persistence.Migrations.AddRegionInk 99.4%
Orihon.Infrastructure.Persistence.Migrations.AddRegionSourceBox 99.6%
Orihon.Infrastructure.Persistence.Migrations.AddRuns 99.1%
Orihon.Infrastructure.Persistence.Migrations.AddStoryOverview 99.5%
Orihon.Infrastructure.Persistence.Migrations.AddTextDoneAndReviewNote 99.2%
Orihon.Infrastructure.Persistence.Migrations.DropRegionContainer 99.1%
Orihon.Infrastructure.Persistence.Migrations.DropRegionInk 99.5%
Orihon.Infrastructure.Persistence.Migrations.DropRegionType 99%
Orihon.Infrastructure.Persistence.Migrations.DropRegionTypeset 99.4%
Orihon.Infrastructure.Persistence.Migrations.InitialTranslationDomain 97.3%
Orihon.Infrastructure.Persistence.Migrations.OrihonDbContextModelSnapshot 100%
Orihon.Infrastructure.Persistence.Migrations.RenameSourceTargetColumns 97.2%
Orihon.Infrastructure.Persistence.Migrations.ReplaceFitBoxWithContainerSeed 99.2%
Orihon.Infrastructure.Persistence.Migrations.RetireFloatingPassAndAddBoxesD
one
98.1% 100%
Orihon.Infrastructure.Persistence.OrihonDbContext 100%
Orihon.Infrastructure.Persistence.OrihonDbContextFactory 100%
Orihon.Infrastructure.Projects.EfProjectStore 100% 100%
Orihon.Infrastructure.Projects.FileSystemPageImageStore 100% 100%
Orihon.Infrastructure.Runs.EfRunStore 100% 100%
Orihon.Infrastructure.Settings.EfAppSettingsStore 100% 100%
Orihon.Infrastructure.Translation.EfChapterStore 100% 100%
Orihon.Infrastructure.Translation.EfPageStore 100% 100%
Orihon.Infrastructure.Translation.EfRegionStore 100% 100%
Orihon.Infrastructure.Translation.Ordering 100% 100%
System.Text.RegularExpressions.Generated 70.6% 53.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7FCA343D2B99030
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlankLines_4
77.9% 76.6%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7FCA343D2B99030
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlockBreaks_1
59% 42.5%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7FCA343D2B99030
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__SpaceRuns_3
89.4% 75%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7FCA343D2B99030
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__Tags_2
83.7% 62.5%
Orihon.Kernel - 90.9%
Name Line Branch
Orihon.Kernel 90.9% 75%
Orihon.Kernel.Err`1 100%
Orihon.Kernel.Ok`1 100%
Orihon.Kernel.Result`1 88.8% 75%
Orihon.Server - 95.1%
Name Line Branch
Orihon.Server 95.1% 79.4%
Orihon.Server.CleaningCallRunnerBootstrap 100%
Orihon.Server.Components.App 100%
Orihon.Server.Components.Layout.MainLayout 100%
Orihon.Server.Components.Pages.Gate 64.2% 66.6%
Orihon.Server.Diagnostics.FakeCleaningServer 94.6% 80.7%
Orihon.Server.RunEngineBootstrap 100%
Orihon.Server.Security.AccessGate 91.8% 41.6%
Orihon.Server.Security.AccessSecret 100% 50%
Orihon.Server.VolumeStartupValidator 100% 100%
Program 96.7% 85.7%
Orihon.UseCases - 94.5%
Name Line Branch
Orihon.UseCases 94.5% 89%
Orihon.UseCases.Agents.AgentAttemptPreparation 100%
Orihon.UseCases.Agents.AgentAttemptSupport 98.6% 98.8%
Orihon.UseCases.Agents.AgentBlueprint 100%
Orihon.UseCases.Agents.AgentCapDebrief 100%
Orihon.UseCases.Agents.AgentGlossary 100%
Orihon.UseCases.Agents.AgentInvocation 100%
Orihon.UseCases.Agents.AgentOutcome 100%
Orihon.UseCases.Agents.AgentTexts 100% 100%
Orihon.UseCases.Agents.AgentTool`1 90.9% 75%
Orihon.UseCases.Agents.AgentToolImage 100%
Orihon.UseCases.Agents.AgentToolResult 100%
Orihon.UseCases.Agents.Annotation.AddRegionParams 100%
Orihon.UseCases.Agents.Annotation.AddRegionTool 100% 100%
Orihon.UseCases.Agents.Annotation.AnnotationBlueprints 100%
Orihon.UseCases.Agents.Annotation.AnnotationStage 100% 90%
Orihon.UseCases.Agents.Annotation.BoundBoxParams 100%
Orihon.UseCases.Agents.Annotation.BoundContactSheetTool 91.3% 75%
Orihon.UseCases.Agents.Annotation.BoundCropParams 100%
Orihon.UseCases.Agents.Annotation.BoundCropTool 100%
Orihon.UseCases.Agents.Annotation.BoundDeleteParams 100%
Orihon.UseCases.Agents.Annotation.BoundViewPageTool 92% 80%
Orihon.UseCases.Agents.Annotation.BoundViewParams 100%
Orihon.UseCases.Agents.Annotation.BoxCreationExecutor 100% 75%
Orihon.UseCases.Agents.Annotation.BoxQaExecutor 93.1% 83.3%
Orihon.UseCases.Agents.Annotation.BoxRefinementExecutor 96.8% 92.8%
Orihon.UseCases.Agents.Annotation.ClassifyRegionParams 100%
Orihon.UseCases.Agents.Annotation.ClassifyRegionTool 100% 100%
Orihon.UseCases.Agents.Annotation.DeleteBoundRegionTool 100% 100%
Orihon.UseCases.Agents.Annotation.DeleteRegionParams 100%
Orihon.UseCases.Agents.Annotation.DeleteRegionTool 100% 100%
Orihon.UseCases.Agents.Annotation.FindGlossaryParams 100%
Orihon.UseCases.Agents.Annotation.FindGlossaryTool 94.4% 75%
Orihon.UseCases.Agents.Annotation.ListRegionsTool 92.5% 86.3%
Orihon.UseCases.Agents.Annotation.MoveResizeBoundTool 100% 100%
Orihon.UseCases.Agents.Annotation.MoveResizeRegionParams 100%
Orihon.UseCases.Agents.Annotation.MoveResizeRegionTool 95.6% 75%
Orihon.UseCases.Agents.Annotation.NoteRegionParams 100%
Orihon.UseCases.Agents.Annotation.NoteRegionTool 100% 100%
Orihon.UseCases.Agents.Annotation.QaReportSink 100% 100%
Orihon.UseCases.Agents.Annotation.RegionAuthoringAccess 91.1% 84.6%
Orihon.UseCases.Agents.Annotation.RegionBriefing 100% 100%
Orihon.UseCases.Agents.Annotation.RegionCropParams 100%
Orihon.UseCases.Agents.Annotation.RegionCropTool 100% 100%
Orihon.UseCases.Agents.Annotation.RegionForms 100% 100%
Orihon.UseCases.Agents.Annotation.RegionProblemParams 100%
Orihon.UseCases.Agents.Annotation.RegionWindow 100% 100%
Orihon.UseCases.Agents.Annotation.RejectRegionParams 100%
Orihon.UseCases.Agents.Annotation.RejectRegionTool 100% 100%
Orihon.UseCases.Agents.Annotation.ReorderRegionParams 100%
Orihon.UseCases.Agents.Annotation.ReorderRegionTool 96.2% 90%
Orihon.UseCases.Agents.Annotation.ReportQaParams 100% 100%
Orihon.UseCases.Agents.Annotation.ReportQaTool 100% 100%
Orihon.UseCases.Agents.Annotation.SetPageMetaParams 100%
Orihon.UseCases.Agents.Annotation.SetPageMetaTool 100% 90%
Orihon.UseCases.Agents.Annotation.SetTranscriptionParams 100%
Orihon.UseCases.Agents.Annotation.SetTranscriptionTool 100% 100%
Orihon.UseCases.Agents.Annotation.TextProblemParams 100%
Orihon.UseCases.Agents.Annotation.TextReportQaParams 100% 100%
Orihon.UseCases.Agents.Annotation.TextReportQaTool 100% 100%
Orihon.UseCases.Agents.Annotation.TranscriptionExecutor 100% 91.6%
Orihon.UseCases.Agents.Annotation.TranscriptionQaExecutor 97% 85%
Orihon.UseCases.Agents.Annotation.VerdictTool`1 97% 90%
Orihon.UseCases.Agents.AssistantSpoke 100%
Orihon.UseCases.Agents.AvoidedWord 100%
Orihon.UseCases.Agents.BibleBuilding.BibleBuildingBlueprint 100%
Orihon.UseCases.Agents.BibleBuilding.BibleBuildingExecutor 96.9% 75%
Orihon.UseCases.Agents.BibleBuilding.GetRegionParams 100%
Orihon.UseCases.Agents.BibleBuilding.GetRegionTool 92% 70%
Orihon.UseCases.Agents.BibleBuilding.ListProjectRegionsTool 96% 87.5%
Orihon.UseCases.Agents.BibleBuilding.ListRegionsParams 100%
Orihon.UseCases.Agents.Cleaning.AcceptEntryParams 100%
Orihon.UseCases.Agents.Cleaning.AcceptParams 100%
Orihon.UseCases.Agents.Cleaning.AcceptTool 100% 100%
Orihon.UseCases.Agents.Cleaning.AddMissedRegionParams 100%
Orihon.UseCases.Agents.Cleaning.AddMissedRegionTool 100% 100%
Orihon.UseCases.Agents.Cleaning.CheckCompareParams 100%
Orihon.UseCases.Agents.Cleaning.CheckCompareTool 100% 90%
Orihon.UseCases.Agents.Cleaning.CheckPageParams 100%
Orihon.UseCases.Agents.Cleaning.CheckViewPageTool 100%
Orihon.UseCases.Agents.Cleaning.CleaningBlueprints 100% 100%
Orihon.UseCases.Agents.Cleaning.CleaningBriefing 100% 98%
Orihon.UseCases.Agents.Cleaning.CleaningClassifyParams 100%
Orihon.UseCases.Agents.Cleaning.CleaningClassifyRegionTool 100% 100%
Orihon.UseCases.Agents.Cleaning.CleaningCropParams 100%
Orihon.UseCases.Agents.Cleaning.CleaningCropTool 100% 100%
Orihon.UseCases.Agents.Cleaning.CleaningExecutor 99% 98.9%
Orihon.UseCases.Agents.Cleaning.CleaningFinish 100% 100%
Orihon.UseCases.Agents.Cleaning.CleaningListRegionsTool 100% 100%
Orihon.UseCases.Agents.Cleaning.CleaningLooksAt 100% 100%
Orihon.UseCases.Agents.Cleaning.CleaningMoveParams 100%
Orihon.UseCases.Agents.Cleaning.CleaningMoveRegionTool 100% 100%
Orihon.UseCases.Agents.Cleaning.CleaningPageParams 100%
Orihon.UseCases.Agents.Cleaning.CleaningRegionParams 100%
Orihon.UseCases.Agents.Cleaning.CleaningStatusTool 100% 96.8%
Orihon.UseCases.Agents.Cleaning.CleaningToolAccess 96.5% 96.1%
Orihon.UseCases.Agents.Cleaning.CleaningWords 100% 100%
Orihon.UseCases.Agents.Cleaning.CleanParams 100%
Orihon.UseCases.Agents.Cleaning.CleanRegionParams 100%
Orihon.UseCases.Agents.Cleaning.CleanTool 98.3% 95.4%
Orihon.UseCases.Agents.Cleaning.EscalateParams 100%
Orihon.UseCases.Agents.Cleaning.EscalateTool 100% 100%
Orihon.UseCases.Agents.Cleaning.FillParams 100%
Orihon.UseCases.Agents.Cleaning.FillTool 100% 100%
Orihon.UseCases.Agents.Cleaning.FinalizeTool 100% 100%
Orihon.UseCases.Agents.Cleaning.FinishPageParams 100%
Orihon.UseCases.Agents.Cleaning.FinishPageTool 100% 100%
Orihon.UseCases.Agents.Cleaning.FinishSurveyTool 100% 100%
Orihon.UseCases.Agents.Cleaning.GroupCompareParams 100%
Orihon.UseCases.Agents.Cleaning.GroupCompareTool 100% 100%
Orihon.UseCases.Agents.Cleaning.GroupMeasureInkParams 100%
Orihon.UseCases.Agents.Cleaning.GroupMeasureInkTool 100%
Orihon.UseCases.Agents.Cleaning.InkReading 100% 100%
Orihon.UseCases.Agents.Cleaning.MeasureInkParams 100%
Orihon.UseCases.Agents.Cleaning.MeasureInkTool 100%
Orihon.UseCases.Agents.Cleaning.ModelCompareParams 100%
Orihon.UseCases.Agents.Cleaning.ModelCompareTool 100%
Orihon.UseCases.Agents.Cleaning.ModelWords 100% 100%
Orihon.UseCases.Agents.Cleaning.RecompositeParams 100%
Orihon.UseCases.Agents.Cleaning.RecompositeTool 100% 100%
Orihon.UseCases.Agents.Cleaning.RejectParams 100%
Orihon.UseCases.Agents.Cleaning.RejectTool 100% 100%
Orihon.UseCases.Agents.Cleaning.Rubric 100% 100%
Orihon.UseCases.Agents.Cleaning.SplitRegionParams 100%
Orihon.UseCases.Agents.Cleaning.SplitRegionTool 100% 100%
Orihon.UseCases.Agents.Cleaning.SurveyViewPageTool 100%
Orihon.UseCases.Agents.Cleaning.UndoTool 100% 100%
Orihon.UseCases.Agents.GlossaryTerm 100%
Orihon.UseCases.Agents.Inspection.PageImageAccess 93.2% 82.1%
Orihon.UseCases.Agents.Inspection.ViewAccount 100% 100%
Orihon.UseCases.Agents.Inspection.ViewTexts 100%
Orihon.UseCases.Agents.ReportFrictionParams 100%
Orihon.UseCases.Agents.ReportFrictionTool 100% 92.8%
Orihon.UseCases.Agents.ResearchSetup.AddStoryBeatParams 100%
Orihon.UseCases.Agents.ResearchSetup.AddStoryBeatTool 100% 75%
Orihon.UseCases.Agents.ResearchSetup.AskUserParams 100%
Orihon.UseCases.Agents.ResearchSetup.AskUserTool 100% 100%
Orihon.UseCases.Agents.ResearchSetup.DeleteStoryBeatParams 100%
Orihon.UseCases.Agents.ResearchSetup.DeleteStoryBeatTool 100% 100%
Orihon.UseCases.Agents.ResearchSetup.FetchUrlParams 100%
Orihon.UseCases.Agents.ResearchSetup.FetchUrlTool 100% 100%
Orihon.UseCases.Agents.ResearchSetup.ListBibleTool 90.3% 66.6%
Orihon.UseCases.Agents.ResearchSetup.ListPagesTool 97% 83.3%
Orihon.UseCases.Agents.ResearchSetup.LocatedPage 100%
Orihon.UseCases.Agents.ResearchSetup.PageByNumber 96.5% 93.7%
Orihon.UseCases.Agents.ResearchSetup.ResearchSetupBlueprint 100%
Orihon.UseCases.Agents.ResearchSetup.SetPageMetaParams 100%
Orihon.UseCases.Agents.ResearchSetup.SetPageMetaTool 95.4% 80%
Orihon.UseCases.Agents.ResearchSetup.SetPageSummaryParams 100%
Orihon.UseCases.Agents.ResearchSetup.SetPageSummaryTool 96% 75%
Orihon.UseCases.Agents.ResearchSetup.SetProjectMetadataParams 100%
Orihon.UseCases.Agents.ResearchSetup.SetProjectMetadataTool 96.4% 95.8%
Orihon.UseCases.Agents.ResearchSetup.SetStoryOverviewParams 100%
Orihon.UseCases.Agents.ResearchSetup.SetStoryOverviewTool 100% 100%
Orihon.UseCases.Agents.ResearchSetup.StoryBeatByNumber 100% 100%
Orihon.UseCases.Agents.ResearchSetup.UpdateStoryBeatParams 100%
Orihon.UseCases.Agents.ResearchSetup.UpdateStoryBeatTool 100% 75%
Orihon.UseCases.Agents.ResearchSetup.UpsertCharacterParams 100%
Orihon.UseCases.Agents.ResearchSetup.UpsertCharacterTool 96.1% 78.5%
Orihon.UseCases.Agents.ResearchSetup.UpsertGlossaryParams 100%
Orihon.UseCases.Agents.ResearchSetup.UpsertGlossaryTool 97.6% 95%
Orihon.UseCases.Agents.ResearchSetup.UpsertLoreParams 100%
Orihon.UseCases.Agents.ResearchSetup.UpsertLoreTool 96.1% 78.5%
Orihon.UseCases.Agents.ResearchSetup.ViewPageParams 100%
Orihon.UseCases.Agents.ResearchSetup.ViewPageTool 100% 100%
Orihon.UseCases.Agents.RoundStarted 100%
Orihon.UseCases.Agents.Rulings.AnswerRuling 100%
Orihon.UseCases.Agents.Rulings.DismissRuling 100%
Orihon.UseCases.Agents.Rulings.HouseRuleProposal 100%
Orihon.UseCases.Agents.Rulings.ListPendingRulings 100%
Orihon.UseCases.Agents.Rulings.ListRuleProposals 100%
Orihon.UseCases.Agents.Rulings.PendingRuling 100%
Orihon.UseCases.Agents.Rulings.ProposeHouseRuleParams 100%
Orihon.UseCases.Agents.Rulings.ProposeHouseRuleTool 100% 100%
Orihon.UseCases.Agents.Rulings.RequestRulingParams 100%
Orihon.UseCases.Agents.Rulings.RequestRulingTool 100% 81.2%
Orihon.UseCases.Agents.Rulings.RulingAnswer 100%
Orihon.UseCases.Agents.Rulings.RulingDesk 97.8% 80%
Orihon.UseCases.Agents.Rulings.RulingOption 100%
Orihon.UseCases.Agents.Rulings.RulingOptionParams 100%
Orihon.UseCases.Agents.Rulings.SettledRuling 100%
Orihon.UseCases.Agents.Rulings.WithdrawRuleProposal 100%
Orihon.UseCases.Agents.Setup.ResearchSetupExecutor 98.4% 91.6%
Orihon.UseCases.Agents.Setup.SetupChatEntry 100%
Orihon.UseCases.Agents.Setup.SetupConversation 100% 87.5%
Orihon.UseCases.Agents.Setup.SetupConversationRegistry 100%
Orihon.UseCases.Agents.ToolCalled 100%
Orihon.UseCases.Agents.ToolCompleted 100%
Orihon.UseCases.Agents.TranscriptLabel 100% 100%
Orihon.UseCases.Agents.Translation.GetPageSummaryParams 100%
Orihon.UseCases.Agents.Translation.GetPageSummaryTool 90.4% 66.6%
Orihon.UseCases.Agents.Translation.SetTranslationParams 100%
Orihon.UseCases.Agents.Translation.SetTranslationTool 94.2% 78.5%
Orihon.UseCases.Agents.Translation.TranslationBlueprint 100%
Orihon.UseCases.Agents.Translation.TranslationExecutor 93.8% 71.4%
Orihon.UseCases.Agents.Translation.UpdateGlossaryEnParams 100%
Orihon.UseCases.Agents.Translation.UpdateGlossaryEnTool 95.8% 80%
Orihon.UseCases.Bible.AddCharacter 100% 100%
Orihon.UseCases.Bible.AddGlossaryEntry 100% 100%
Orihon.UseCases.Bible.AddHouseRule 100% 100%
Orihon.UseCases.Bible.AddLoreEntry 100% 100%
Orihon.UseCases.Bible.AddStoryBeat 100% 100%
Orihon.UseCases.Bible.BibleDto 100%
Orihon.UseCases.Bible.CharacterDto 100%
Orihon.UseCases.Bible.DeleteCharacter 100% 100%
Orihon.UseCases.Bible.DeleteGlossaryEntry 100% 100%
Orihon.UseCases.Bible.DeleteHouseRule 100% 100%
Orihon.UseCases.Bible.DeleteLoreEntry 100% 100%
Orihon.UseCases.Bible.DeletePageSummary 100% 100%
Orihon.UseCases.Bible.DeleteStoryBeat 100% 100%
Orihon.UseCases.Bible.GetBible 100% 100%
Orihon.UseCases.Bible.GlossaryEntryDto 100%
Orihon.UseCases.Bible.HouseRuleDto 100%
Orihon.UseCases.Bible.LoreEntryDto 100%
Orihon.UseCases.Bible.PageSummaryDto 100%
Orihon.UseCases.Bible.ReorderStoryBeats 100%
Orihon.UseCases.Bible.SetPageSummary 100% 100%
Orihon.UseCases.Bible.SetStoryOverview 100% 100%
Orihon.UseCases.Bible.StoryBeatDto 100%
Orihon.UseCases.Bible.StoryOverviewDto 100%
Orihon.UseCases.Bible.UpdateCharacter 100% 100%
Orihon.UseCases.Bible.UpdateGlossaryEntry 100% 100%
Orihon.UseCases.Bible.UpdateHouseRule 100% 100%
Orihon.UseCases.Bible.UpdateLoreEntry 100% 100%
Orihon.UseCases.Bible.UpdateStoryBeat 100% 100%
Orihon.UseCases.Chapters.ChapterDto 100%
Orihon.UseCases.Chapters.CreateChapter 100% 100%
Orihon.UseCases.Chapters.DeleteChapter 100% 100%
Orihon.UseCases.Chapters.RenameChapter 100% 100%
Orihon.UseCases.Chapters.ReorderChapters 100%
Orihon.UseCases.Cleaning.AcceptCleaning 100% 98.3%
Orihon.UseCases.Cleaning.AcceptEntry 100%
Orihon.UseCases.Cleaning.AddMissedRegion 100% 100%
Orihon.UseCases.Cleaning.CallFrame 100% 100%
Orihon.UseCases.Cleaning.CallFrames 100% 100%
Orihon.UseCases.Cleaning.CallMember 100%
Orihon.UseCases.Cleaning.CallNote 100%
Orihon.UseCases.Cleaning.CanaryShape 100% 50%
Orihon.UseCases.Cleaning.CandidatePick 100%
Orihon.UseCases.Cleaning.CandidatePickDto 100%
Orihon.UseCases.Cleaning.CandidateReading 100%
Orihon.UseCases.Cleaning.CanvasChoice 100%
Orihon.UseCases.Cleaning.ClassifyCleaningRegion 100% 100%
Orihon.UseCases.Cleaning.CleanAnswer 100%
Orihon.UseCases.Cleaning.CleanAsk 100%
Orihon.UseCases.Cleaning.CleanAsked 100%
Orihon.UseCases.Cleaning.CleanCandidate 100%
Orihon.UseCases.Cleaning.CleanedRegionDto 96.2% 100%
Orihon.UseCases.Cleaning.CleanedResultDto 100%
Orihon.UseCases.Cleaning.CleanedViewDto 100%
Orihon.UseCases.Cleaning.CleanFailed 100%
Orihon.UseCases.Cleaning.CleanHalted 100%
Orihon.UseCases.Cleaning.CleaningAccepted 100%
Orihon.UseCases.Cleaning.CleaningAssessment 100% 100%
Orihon.UseCases.Cleaning.CleaningCacheKey 100% 100%
Orihon.UseCases.Cleaning.CleaningCallDto 100%
Orihon.UseCases.Cleaning.CleaningCallFailed 100%
Orihon.UseCases.Cleaning.CleaningCallFile 100%
Orihon.UseCases.Cleaning.CleaningCallHalted 100%
Orihon.UseCases.Cleaning.CleaningCallRequest 100%
Orihon.UseCases.Cleaning.CleaningCallReturned 100%
Orihon.UseCases.Cleaning.CleaningCallRunner 97.2% 95.2%
Orihon.UseCases.Cleaning.CleaningCanary 100%
Orihon.UseCases.Cleaning.CleaningCandidate 80%
Orihon.UseCases.Cleaning.CleaningCandidateDto 100%
Orihon.UseCases.Cleaning.CleaningCandidates 100% 97%
Orihon.UseCases.Cleaning.CleaningComposites 100% 97.8%
Orihon.UseCases.Cleaning.CleaningCoverage 100% 100%
Orihon.UseCases.Cleaning.CleaningEditDto 77.7%
Orihon.UseCases.Cleaning.CleaningEdits 100% 100%
Orihon.UseCases.Cleaning.CleaningEligibility 100% 100%
Orihon.UseCases.Cleaning.CleaningFailure 100%
Orihon.UseCases.Cleaning.CleaningFailures 100% 97.6%
Orihon.UseCases.Cleaning.CleaningFrames 100% 100%
Orihon.UseCases.Cleaning.CleaningGpuTime 100%
Orihon.UseCases.Cleaning.CleaningGroupBinding 100% 100%
Orihon.UseCases.Cleaning.CleaningHealth 100% 100%
Orihon.UseCases.Cleaning.CleaningIdentity 100% 89.7%
Orihon.UseCases.Cleaning.CleaningInvocation 100% 100%
Orihon.UseCases.Cleaning.CleaningInvocationOptions 100%
Orihon.UseCases.Cleaning.CleaningJudgementDto 100%
Orihon.UseCases.Cleaning.CleaningLabels 100% 100%
Orihon.UseCases.Cleaning.CleaningLooks 100% 100%
Orihon.UseCases.Cleaning.CleaningModelCalls 100% 100%
Orihon.UseCases.Cleaning.CleaningPage 100%
Orihon.UseCases.Cleaning.CleaningPageGuard 100% 100%
Orihon.UseCases.Cleaning.CleaningPageLocks 100% 100%
Orihon.UseCases.Cleaning.CleaningPatchLanding 100% 100%
Orihon.UseCases.Cleaning.CleaningPlan 100%
Orihon.UseCases.Cleaning.CleaningPlanner 100% 100%
Orihon.UseCases.Cleaning.CleaningPlanOptions 100%
Orihon.UseCases.Cleaning.CleaningRecipe 100%
Orihon.UseCases.Cleaning.CleaningRegionEdited 100%
Orihon.UseCases.Cleaning.CleaningRegions 100% 100%
Orihon.UseCases.Cleaning.CleaningRegionUpkeep 100% 97.2%
Orihon.UseCases.Cleaning.CleaningRejected 100%
Orihon.UseCases.Cleaning.CleaningRowNotes 100% 100%
Orihon.UseCases.Cleaning.CleaningRowWords 100%
Orihon.UseCases.Cleaning.CleaningRunnerOptions 100%
Orihon.UseCases.Cleaning.CleaningRunnerStatus 100%
Orihon.UseCases.Cleaning.CleaningSeeds 100% 100%
Orihon.UseCases.Cleaning.CleaningStatusRead 100%
Orihon.UseCases.Cleaning.CleaningTouchUp 100% 100%
Orihon.UseCases.Cleaning.CleaningUndone 100%
Orihon.UseCases.Cleaning.CleaningViewDto 100%
Orihon.UseCases.Cleaning.CleaningViewOptions 100%
Orihon.UseCases.Cleaning.CleaningWork 100% 100%
Orihon.UseCases.Cleaning.CleanMember 100%
Orihon.UseCases.Cleaning.CleanRegions 99.2% 96.8%
Orihon.UseCases.Cleaning.CleanReturned 100%
Orihon.UseCases.Cleaning.CompareAsk 100%
Orihon.UseCases.Cleaning.CompareCleaningView 100% 96.9%
Orihon.UseCases.Cleaning.CompareSourceAsk 100%
Orihon.UseCases.Cleaning.ComposedCandidate 100% 100%
Orihon.UseCases.Cleaning.CompositeWarning 100%
Orihon.UseCases.Cleaning.CompositeWarnings 100% 100%
Orihon.UseCases.Cleaning.ComputedFill 100%
Orihon.UseCases.Cleaning.CropAsk 100%
Orihon.UseCases.Cleaning.CropCleaningView 100% 100%
Orihon.UseCases.Cleaning.EscalateCleaning 100% 100%
Orihon.UseCases.Cleaning.FillRegion 100% 100%
Orihon.UseCases.Cleaning.FillShown 100%
Orihon.UseCases.Cleaning.FinalizeGroup 100% 100%
Orihon.UseCases.Cleaning.FinishPageCheck 100% 100%
Orihon.UseCases.Cleaning.FinishSurvey 100% 100%
Orihon.UseCases.Cleaning.GetCleanedView 99.3% 94.9%
Orihon.UseCases.Cleaning.GetCleaningRunnerStatus 100%
Orihon.UseCases.Cleaning.GetCleaningStatus 100% 100%
Orihon.UseCases.Cleaning.GpuWait 100%
Orihon.UseCases.Cleaning.GroupBinding 100%
Orihon.UseCases.Cleaning.GroupFinalized 100%
Orihon.UseCases.Cleaning.InkHints 100% 100%
Orihon.UseCases.Cleaning.InkMeasured 100%
Orihon.UseCases.Cleaning.JobClock 100% 100%
Orihon.UseCases.Cleaning.JobIdentity 100%
Orihon.UseCases.Cleaning.LabelProblem 100%
Orihon.UseCases.Cleaning.LoadedCandidate 100%
Orihon.UseCases.Cleaning.MagnifiedCanvas 100%
Orihon.UseCases.Cleaning.MeasureCleaningInk 100% 100%
Orihon.UseCases.Cleaning.ModelSource 100%
Orihon.UseCases.Cleaning.MoveCleaningRegion 100% 100%
Orihon.UseCases.Cleaning.OwedRegion 100%
Orihon.UseCases.Cleaning.OweFreshAttempts 100% 100%
Orihon.UseCases.Cleaning.OwnWindowFrame 100%
Orihon.UseCases.Cleaning.PageChecked 100%
Orihon.UseCases.Cleaning.PageLook 100%
Orihon.UseCases.Cleaning.PagePlan 100%
Orihon.UseCases.Cleaning.PageWork 100% 100%
Orihon.UseCases.Cleaning.PickCleaningCandidate 100% 96.9%
Orihon.UseCases.Cleaning.PlanCleaning 100% 100%
Orihon.UseCases.Cleaning.PlannedCall 100%
Orihon.UseCases.Cleaning.PlanSurvey 100% 100%
Orihon.UseCases.Cleaning.PlateRebuilt 100%
Orihon.UseCases.Cleaning.RebuildPlate 100% 100%
Orihon.UseCases.Cleaning.RecompositeAsk 100%
Orihon.UseCases.Cleaning.RecompositeCandidate 100% 97.8%
Orihon.UseCases.Cleaning.Recomposited 100%
Orihon.UseCases.Cleaning.RecordedView 100%
Orihon.UseCases.Cleaning.RecordPageCheck 100% 75%
Orihon.UseCases.Cleaning.RectFrame 100%
Orihon.UseCases.Cleaning.RegionCleaningRead 100%
Orihon.UseCases.Cleaning.RegionFrame 100%
Orihon.UseCases.Cleaning.RegionStanding 100% 100%
Orihon.UseCases.Cleaning.RejectCleaning 100% 97.6%
Orihon.UseCases.Cleaning.RejectEntry 100%
Orihon.UseCases.Cleaning.ReprocessCleaning 100% 100%
Orihon.UseCases.Cleaning.ResumeCleaning 100% 100%
Orihon.UseCases.Cleaning.SplitCleaningRegion 100% 100%
Orihon.UseCases.Cleaning.StartCleaningRun 100% 98%
Orihon.UseCases.Cleaning.SurveyBatch 100%
Orihon.UseCases.Cleaning.SurveyCoverage 100% 100%
Orihon.UseCases.Cleaning.SurveyFinished 100%
Orihon.UseCases.Cleaning.SurveyTarget 100%
Orihon.UseCases.Cleaning.UndoCleaning 100% 94.4%
Orihon.UseCases.Cleaning.UploadNotes 100%
Orihon.UseCases.Cleaning.ViewCleaningPage 100% 100%
Orihon.UseCases.Cleaning.ViewColour 100%
Orihon.UseCases.Debriefs.AgentDebriefDto 90.9%
Orihon.UseCases.Debriefs.AgentFeedbackDto 83.3%
Orihon.UseCases.Debriefs.ClearAgentDebriefs 100%
Orihon.UseCases.Debriefs.ClearAgentFeedback 100%
Orihon.UseCases.Debriefs.ListAgentDebriefs 100% 100%
Orihon.UseCases.Debriefs.ListAgentFeedback 100% 75%
Orihon.UseCases.DependencyInjection 100%
Orihon.UseCases.Diagnostics.FakeCleaningServerAddress 100%
Orihon.UseCases.Diagnostics.SeedCleaning 89.1% 57.3%
Orihon.UseCases.Diagnostics.SeedDevData 99.2% 80.7%
Orihon.UseCases.Gateways.AppliedComposite 100%
Orihon.UseCases.Gateways.BoxFlag 100%
Orihon.UseCases.Gateways.CallComposite 100%
Orihon.UseCases.Gateways.CleaningOverlays 100%
Orihon.UseCases.Gateways.CleaningSource 100%
Orihon.UseCases.Gateways.CleaningView 100% 100%
Orihon.UseCases.Gateways.CleaningViewImage 100%
Orihon.UseCases.Gateways.CleaningViewTile 100%
Orihon.UseCases.Gateways.ClosedBalloon 100%
Orihon.UseCases.Gateways.CompareRequest 100%
Orihon.UseCases.Gateways.CompositeMember 100%
Orihon.UseCases.Gateways.CompositeRequest 100%
Orihon.UseCases.Gateways.CompositeSettings 100%
Orihon.UseCases.Gateways.CropRequest 100%
Orihon.UseCases.Gateways.EditBackendError 100%
Orihon.UseCases.Gateways.EditBackendIdentity 100%
Orihon.UseCases.Gateways.EditJob 100%
Orihon.UseCases.Gateways.EditJobAccepted 100%
Orihon.UseCases.Gateways.EditJobRejected 100%
Orihon.UseCases.Gateways.EditJobRequest 86.6% 66.6%
Orihon.UseCases.Gateways.EditJobRun 100%
Orihon.UseCases.Gateways.EditModels 100%
Orihon.UseCases.Gateways.EditModelWeight 100%
Orihon.UseCases.Gateways.EditOutputImage 100%
Orihon.UseCases.Gateways.EditOutputWithheld 100%
Orihon.UseCases.Gateways.EditRect 100% 100%
Orihon.UseCases.Gateways.EditRunOutput 100%
Orihon.UseCases.Gateways.EditServerAnswered`1 100%
Orihon.UseCases.Gateways.EditServerBuild 100%
Orihon.UseCases.Gateways.EditServerHealth 100%
Orihon.UseCases.Gateways.EditServerSilent`1 100%
Orihon.UseCases.Gateways.FillRefusal 100%
Orihon.UseCases.Gateways.FillReport 100%
Orihon.UseCases.Gateways.GlyphFill 100%
Orihon.UseCases.Gateways.GridAxis 100%
Orihon.UseCases.Gateways.GridSteps 100%
Orihon.UseCases.Gateways.InkFacts 100%
Orihon.UseCases.Gateways.InkHint 100%
Orihon.UseCases.Gateways.InkMeasure 100%
Orihon.UseCases.Gateways.InkReadings 100%
Orihon.UseCases.Gateways.InkRegion 100%
Orihon.UseCases.Gateways.LabeledBox 100%
Orihon.UseCases.Gateways.LevelRange 100%
Orihon.UseCases.Gateways.LlmKeyInfo 100%
Orihon.UseCases.Gateways.LlmModel 100%
Orihon.UseCases.Gateways.LlmReasoning 100% 100%
Orihon.UseCases.Gateways.MeasureBlend 100%
Orihon.UseCases.Gateways.MeasureRaw 100%
Orihon.UseCases.Gateways.MeasureRegion 100%
Orihon.UseCases.Gateways.MeasureRequest 100%
Orihon.UseCases.Gateways.MemberComposite 100%
Orihon.UseCases.Gateways.PagePatch 100%
Orihon.UseCases.Gateways.PageTone 100%
Orihon.UseCases.Gateways.PaperColor 100%
Orihon.UseCases.Gateways.PixelAlpha 100%
Orihon.UseCases.Gateways.PixelDigest 100%
Orihon.UseCases.Gateways.PixelMask 100%
Orihon.UseCases.Gateways.PixelRect 100%
Orihon.UseCases.Gateways.PixelWindow 100%
Orihon.UseCases.Gateways.PlateBuild 100%
Orihon.UseCases.Gateways.RegionGeometry 100%
Orihon.UseCases.Gateways.RegionPlanFacts 100%
Orihon.UseCases.Gateways.RegistrationField 100%
Orihon.UseCases.Gateways.RenderedView 100%
Orihon.UseCases.Gateways.StoredPatch 100%
Orihon.UseCases.Gateways.StoredTranscript 100%
Orihon.UseCases.Gateways.StoredTranscriptPage 100%
Orihon.UseCases.Gateways.ToneFit 100%
Orihon.UseCases.Gateways.TranscriptHeader 97.3% 90.9%
Orihon.UseCases.Gateways.TranscriptListingFacets 100%
Orihon.UseCases.Gateways.TranscriptSummary 100%
Orihon.UseCases.Gateways.WindowUpload 100%
Orihon.UseCases.NextOrder 100%
Orihon.UseCases.Pages.DeletePage 100% 100%
Orihon.UseCases.Pages.DeletePages 100% 100%
Orihon.UseCases.Pages.GetPage 100% 100%
Orihon.UseCases.Pages.GetPageSteps 100% 100%
Orihon.UseCases.Pages.GetProjectWorkspace 100% 100%
Orihon.UseCases.Pages.GetReadingOrder 100% 100%
Orihon.UseCases.Pages.ImportPages 100% 100%
Orihon.UseCases.Pages.ImportPagesResult 100%
Orihon.UseCases.Pages.MarkPageBoxesDone 100% 100%
Orihon.UseCases.Pages.MarkPageTextDone 100% 100%
Orihon.UseCases.Pages.MovePage 100% 93.7%
Orihon.UseCases.Pages.MovePages 100% 100%
Orihon.UseCases.Pages.PageCleaningSummary 100%
Orihon.UseCases.Pages.PageDetailDto 100% 100%
Orihon.UseCases.Pages.PageDto 100%
Orihon.UseCases.Pages.PageStepsDto 100%
Orihon.UseCases.Pages.PageUpload 100%
Orihon.UseCases.Pages.ProjectWorkspaceDto 100%
Orihon.UseCases.Pages.ReorderPages 100%
Orihon.UseCases.Pages.SetPageMeta 100% 100%
Orihon.UseCases.Pages.WorkspaceChapterDto 100%
Orihon.UseCases.Projects.BoxAnswer 100%
Orihon.UseCases.Projects.CompleteProjectSetup 100% 93.7%
Orihon.UseCases.Projects.CreateProject 100% 100%
Orihon.UseCases.Projects.DeleteProject 100% 100%
Orihon.UseCases.Projects.GetProject 100% 100%
Orihon.UseCases.Projects.ListProjects 100%
Orihon.UseCases.Projects.PageMention 100%
Orihon.UseCases.Projects.ProjectDto 96.1%
Orihon.UseCases.Projects.StartBibleRun 92.3% 83.3%
Orihon.UseCases.Projects.StartBoxRun 100% 100%
Orihon.UseCases.Projects.StartSetupRun 100% 100%
Orihon.UseCases.Projects.StartTranscriptionRun 100% 95.4%
Orihon.UseCases.Projects.StartTranslationRun 92.3% 83.3%
Orihon.UseCases.Projects.StoredPageImage 100%
Orihon.UseCases.Projects.TranscribeAnswer 100%
Orihon.UseCases.Projects.UpdateProjectMetadata 100% 100%
Orihon.UseCases.Regions.CreateRegion 100% 100%
Orihon.UseCases.Regions.DeleteRegion 100% 100%
Orihon.UseCases.Regions.MatchSourceToBox 100% 100%
Orihon.UseCases.Regions.RegionDto 100%
Orihon.UseCases.Regions.RegionWrite 100% 100%
Orihon.UseCases.Regions.RegionWriteResult 100%
Orihon.UseCases.Regions.RegionWrites 100% 100%
Orihon.UseCases.Regions.ReorderRegions 100%
Orihon.UseCases.Regions.SplitRegion 97.2% 84.6%
Orihon.UseCases.Regions.UpdateRegion 100% 96.4%
Orihon.UseCases.Runs.AnnotationPipeline 100% 100%
Orihon.UseCases.Runs.AttemptLedger 100% 100%
Orihon.UseCases.Runs.ExecutionDto 93.7%
Orihon.UseCases.Runs.ExecutionProgress 100%
Orihon.UseCases.Runs.ExecutionProgressRegistry 100% 100%
Orihon.UseCases.Runs.ExecutionPulseRelay 100% 100%
Orihon.UseCases.Runs.ExecutionSendBack 100%
Orihon.UseCases.Runs.GetTextReviewNote 100% 100%
Orihon.UseCases.Runs.PlannedExecution 100%
Orihon.UseCases.Runs.PulseTarget 100%
Orihon.UseCases.Runs.ReprocessPage 100% 100%
Orihon.UseCases.Runs.ReprocessTranscription 100% 100%
Orihon.UseCases.Runs.ReprocessTranslation 88.8% 83.3%
Orihon.UseCases.Runs.RunDto 93.3% 90%
Orihon.UseCases.Runs.RunEngine 97.5% 94.2%
Orihon.UseCases.Runs.RunEngineOptions 100% 100%
Orihon.UseCases.Runs.RunPhase 94.7% 100%
Orihon.UseCases.Runs.RunStart 100%
Orihon.UseCases.Runs.StageContext 100% 100%
Orihon.UseCases.Runs.StageHaltedException 100%
Orihon.UseCases.Runs.WorkStates 100% 83.3%
Orihon.UseCases.Settings.AgentSettingDto 100% 100%
Orihon.UseCases.Settings.CheckCleaningServer 87.5% 60%
Orihon.UseCases.Settings.CleaningInFlightSetting 100% 100%
Orihon.UseCases.Settings.CleaningServerSetting 100% 100%
Orihon.UseCases.Settings.CleaningServerStatusDto 100% 100%
Orihon.UseCases.Settings.ConcurrencySetting 100% 100%
Orihon.UseCases.Settings.EffortSetting 100% 100%
Orihon.UseCases.Settings.GetSettings 100% 100%
Orihon.UseCases.Settings.ListModelOptions 100% 100%
Orihon.UseCases.Settings.RoutingSetting 100% 100%
Orihon.UseCases.Settings.SaveAgentEffort 100% 100%
Orihon.UseCases.Settings.SaveAgentModel 100% 100%
Orihon.UseCases.Settings.SaveAgentRouting 100% 100%
Orihon.UseCases.Settings.SaveCleaningInFlight 100% 100%
Orihon.UseCases.Settings.SaveCleaningServer 95.2% 85.7%
Orihon.UseCases.Settings.SaveOpenRouterKey 100% 100%
Orihon.UseCases.Settings.SaveRunConcurrency 100% 100%
Orihon.UseCases.Settings.SettingKeys 100% 100%
Orihon.UseCases.Settings.SettingsDto 100% 100%
Orihon.UseCases.Transcripts.AgentTranscriptDto 100%
Orihon.UseCases.Transcripts.AgentTranscriptListDto 100%
Orihon.UseCases.Transcripts.AgentTranscriptPageDto 100%
Orihon.UseCases.Transcripts.AgentTranscriptTextDto 100%
Orihon.UseCases.Transcripts.ClearAgentTranscripts 100% 100%
Orihon.UseCases.Transcripts.ListAgentTranscripts 100% 100%
Orihon.UseCases.Transcripts.ReadAgentTranscript 100% 100%
System.Text.RegularExpressions.Generated 75.6% 70.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__BalloonWords_7
70.7% 57.8%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__Capital_0
90.1% 77.2%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__CoordinateWords_1
81.8% 81.8%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__JustBefore_4
80.9% 71.1%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__KindWords_5
78.6% 63.7%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__OutlineWords_6
65.1% 53.5%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__PositionalProse_2
71.9% 71.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__SideOfTheBox_3
83% 80.4%
<!-- coverage-comment --> > 🔄 **Auto-updating coverage report** — this comment is regenerated on every push, so the numbers below always reflect the commit shown here, not the branch tip. > > **Commit:** `7b4d028` · **Generated:** 2026-10-11 10:54:25 UTC · **Revision:** #2 # Summary <details open><summary>Summary</summary> ||| |:---|:---| | Generated on: | 10/11/2026 - 10:54:25 | | Coverage date: | 10/11/2026 - 10:52:22 - 10/11/2026 - 10:54:21 | | Parser: | MultiReport (4x Cobertura) | | Assemblies: | 6 | | Classes: | 938 | | Files: | 417 | | **Line coverage:** | 97.2% (49112 of 50521) | | Covered lines: | 49112 | | Uncovered lines: | 1409 | | Coverable lines: | 50521 | | Total lines: | 78037 | | **Branch coverage:** | 88.9% (10186 of 11448) | | Covered branches: | 10186 | | Total branches: | 11448 | | **Method coverage:** | [Feature is only available for sponsors](https://reportgenerator.io/pro) | </details> ## Coverage <details><summary>Orihon.BlazorAdapter - 96.6%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Orihon.BlazorAdapter**|**96.6%**|**91.2%**| |Orihon.BlazorAdapter.Bible.AddBeatRowRequested|100%|| |Orihon.BlazorAdapter.Bible.AddCharacterRowRequested|100%|| |Orihon.BlazorAdapter.Bible.AddGlossaryRowRequested|100%|| |Orihon.BlazorAdapter.Bible.AddHouseRuleRowRequested|100%|| |Orihon.BlazorAdapter.Bible.AddLoreRowRequested|100%|| |Orihon.BlazorAdapter.Bible.BibleEffects|89.8%|76.9%| |Orihon.BlazorAdapter.Bible.BibleLoaded|100%|| |Orihon.BlazorAdapter.Bible.BiblePage|92.3%|80.5%| |Orihon.BlazorAdapter.Bible.BibleReducers|90.6%|| |Orihon.BlazorAdapter.Bible.BibleState|100%|| |Orihon.BlazorAdapter.Bible.BibleWriteFailed|100%|| |Orihon.BlazorAdapter.Bible.DeleteBeatRowRequested|100%|| |Orihon.BlazorAdapter.Bible.DeleteCharacterRowRequested|100%|| |Orihon.BlazorAdapter.Bible.DeleteGlossaryRowRequested|100%|| |Orihon.BlazorAdapter.Bible.DeleteHouseRuleRowRequested|0%|| |Orihon.BlazorAdapter.Bible.DeleteLoreRowRequested|0%|| |Orihon.BlazorAdapter.Bible.LoadBible|100%|| |Orihon.BlazorAdapter.Bible.ReorderBeatsRequested|0%|| |Orihon.BlazorAdapter.Bible.SaveOverviewRequested|100%|| |Orihon.BlazorAdapter.Bible.SaveSummaryRequested|100%|| |Orihon.BlazorAdapter.Bible.UpdateBeatRowRequested|100%|| |Orihon.BlazorAdapter.Bible.UpdateCharacterRowRequested|100%|| |Orihon.BlazorAdapter.Bible.UpdateGlossaryRowRequested|100%|| |Orihon.BlazorAdapter.Bible.UpdateHouseRuleRowRequested|100%|| |Orihon.BlazorAdapter.Bible.UpdateLoreRowRequested|100%|| |Orihon.BlazorAdapter.BlazorAdapterAssembly|100%|| |Orihon.BlazorAdapter.PageWorkspace.BoxSendBackRefused|100%|| |Orihon.BlazorAdapter.PageWorkspace.CleanedDraft|100%|| |Orihon.BlazorAdapter.PageWorkspace.CleanedView|100%|100%| |Orihon.BlazorAdapter.PageWorkspace.CleaningReprocessSent|100%|| |Orihon.BlazorAdapter.PageWorkspace.CreateRegionRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.DeletePageSummaryRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.DeleteRegionRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.LoadPageCleaning|100%|| |Orihon.BlazorAdapter.PageWorkspace.LoadPageWorkspace|100%|| |Orihon.BlazorAdapter.PageWorkspace.MatchSourceToBoxRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.PageCleaningLoaded|100%|| |Orihon.BlazorAdapter.PageWorkspace.PageStepsLoaded|100%|| |Orihon.BlazorAdapter.PageWorkspace.PageSummarySaved|100%|| |Orihon.BlazorAdapter.PageWorkspace.PageViewport|100%|100%| |Orihon.BlazorAdapter.PageWorkspace.PageWorkspaceEffects|100%|100%| |Orihon.BlazorAdapter.PageWorkspace.PageWorkspaceLoaded|100%|| |Orihon.BlazorAdapter.PageWorkspace.PageWorkspacePage|96.8%|92.4%| |Orihon.BlazorAdapter.PageWorkspace.PageWorkspaceReducers|100%|68.7%| |Orihon.BlazorAdapter.PageWorkspace.PageWorkspaceState|100%|| |Orihon.BlazorAdapter.PageWorkspace.PageWriteFailed|100%|| |Orihon.BlazorAdapter.PageWorkspace.PickCandidateRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.RegionCreated|100%|| |Orihon.BlazorAdapter.PageWorkspace.RegionSaved|100%|| |Orihon.BlazorAdapter.PageWorkspace.ReorderRegionsRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.ReprocessCleaningRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.ReprocessPageRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.ReprocessTranscriptionRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.ReprocessTranslationRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.RunBoxAgainRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.RunTranscriptionAgainRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.SavePageSummaryRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.SaveRegionRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.SetPageMetaRequested|100%|| |Orihon.BlazorAdapter.PageWorkspace.TextReviewNoteLoaded|100%|| |Orihon.BlazorAdapter.PageWorkspace.TranscriptionSendBackRefused|100%|| |Orihon.BlazorAdapter.Projects.CreateProjectRequested|100%|| |Orihon.BlazorAdapter.Projects.DecideSetupContinuation|100%|| |Orihon.BlazorAdapter.Projects.DeleteProjectRequested|100%|| |Orihon.BlazorAdapter.Projects.FinishSetupRequested|100%|| |Orihon.BlazorAdapter.Projects.ImportPagesRequested|100%|| |Orihon.BlazorAdapter.Projects.LoadWizard|100%|| |Orihon.BlazorAdapter.Projects.PageOrganizer|96%|95%| |Orihon.BlazorAdapter.Projects.PagesImported|100%|| |Orihon.BlazorAdapter.Projects.ProjectDeleteFailed|100%|| |Orihon.BlazorAdapter.Projects.ProjectListEffects|100%|100%| |Orihon.BlazorAdapter.Projects.ProjectListPage|89.7%|91.6%| |Orihon.BlazorAdapter.Projects.ProjectListReducers|100%|| |Orihon.BlazorAdapter.Projects.ProjectListState|100%|| |Orihon.BlazorAdapter.Projects.ProjectsLoaded|100%|| |Orihon.BlazorAdapter.Projects.ProjectWizardEffects|93.8%|90%| |Orihon.BlazorAdapter.Projects.ProjectWizardPage|95.3%|84.1%| |Orihon.BlazorAdapter.Projects.ProjectWizardReducers|100%|| |Orihon.BlazorAdapter.Projects.ProjectWizardState|100%|| |Orihon.BlazorAdapter.Projects.SetupChat|93.5%|100%| |Orihon.BlazorAdapter.Projects.SetupChatEffects|100%|100%| |Orihon.BlazorAdapter.Projects.SetupChatFailed|100%|| |Orihon.BlazorAdapter.Projects.SetupChatReducers|100%|| |Orihon.BlazorAdapter.Projects.SetupChatState|100%|| |Orihon.BlazorAdapter.Projects.SetupChatUpdated|100%|| |Orihon.BlazorAdapter.Projects.StartSetupChat|100%|| |Orihon.BlazorAdapter.Projects.SubmitSetupAnswer|100%|| |Orihon.BlazorAdapter.Projects.WizardDeletePagesRequested|100%|| |Orihon.BlazorAdapter.Projects.WizardLoaded|100%|| |Orihon.BlazorAdapter.Projects.WizardMovePagesRequested|100%|| |Orihon.BlazorAdapter.Projects.WizardMovePagesToNewChapterRequested|100%|| |Orihon.BlazorAdapter.Projects.WizardReorderPagesRequested|100%|| |Orihon.BlazorAdapter.Projects.WizardWriteFailed|100%|| |Orihon.BlazorAdapter.Rulings.AcceptProposalRequested|100%|| |Orihon.BlazorAdapter.Rulings.AnsweredRuling|100%|| |Orihon.BlazorAdapter.Rulings.AnswerRulingRequested|100%|| |Orihon.BlazorAdapter.Rulings.DeclineProposalRequested|100%|| |Orihon.BlazorAdapter.Rulings.DismissRulingRequested|100%|| |Orihon.BlazorAdapter.Rulings.RulingBar|100%|96.4%| |Orihon.BlazorAdapter.Rulings.RulingDeskBridge|94.2%|91.6%| |Orihon.BlazorAdapter.Rulings.RulingsEffects|95.4%|83.3%| |Orihon.BlazorAdapter.Rulings.RulingsLoaded|100%|| |Orihon.BlazorAdapter.Rulings.RulingsReducers|100%|| |Orihon.BlazorAdapter.Rulings.RulingsState|100%|| |Orihon.BlazorAdapter.Rulings.RulingWriteFailed|100%|| |Orihon.BlazorAdapter.Rulings.SaveAnswerAsHouseRuleRequested|100%|| |Orihon.BlazorAdapter.Runs.CancelMonitorRun|100%|| |Orihon.BlazorAdapter.Runs.MonitorPageRef|100%|| |Orihon.BlazorAdapter.Runs.MonitorRunLoaded|100%|| |Orihon.BlazorAdapter.Runs.RetryMonitorExecution|100%|| |Orihon.BlazorAdapter.Runs.RunChangedBridge|95%|92.8%| |Orihon.BlazorAdapter.Runs.RunMonitor|98.2%|94.4%| |Orihon.BlazorAdapter.Runs.RunMonitorEffects|100%|92.8%| |Orihon.BlazorAdapter.Runs.RunMonitorReducers|100%|| |Orihon.BlazorAdapter.Runs.RunMonitorState|100%|| |Orihon.BlazorAdapter.Settings.AgentDebriefsLoaded|100%|| |Orihon.BlazorAdapter.Settings.AgentDebriefsLoadFailed|100%|| |Orihon.BlazorAdapter.Settings.AgentEffortPicked|100%|| |Orihon.BlazorAdapter.Settings.AgentEffortSaved|100%|| |Orihon.BlazorAdapter.Settings.AgentEffortSaveFailed|100%|| |Orihon.BlazorAdapter.Settings.AgentFeedbackLoaded|100%|| |Orihon.BlazorAdapter.Settings.AgentFeedbackLoadFailed|0%|| |Orihon.BlazorAdapter.Settings.AgentModelPicked|100%|| |Orihon.BlazorAdapter.Settings.AgentModelSaved|100%|| |Orihon.BlazorAdapter.Settings.AgentModelSaveFailed|100%|| |Orihon.BlazorAdapter.Settings.AgentRoutingPicked|100%|| |Orihon.BlazorAdapter.Settings.AgentRoutingSaved|100%|| |Orihon.BlazorAdapter.Settings.AgentRoutingSaveFailed|0%|| |Orihon.BlazorAdapter.Settings.AgentTranscriptsLoaded|100%|| |Orihon.BlazorAdapter.Settings.AgentTranscriptsLoadFailed|0%|| |Orihon.BlazorAdapter.Settings.CleaningInFlightPicked|100%|| |Orihon.BlazorAdapter.Settings.CleaningInFlightSaveFailed|100%|| |Orihon.BlazorAdapter.Settings.CleaningResumed|100%|| |Orihon.BlazorAdapter.Settings.CleaningRunnerLoaded|100%|| |Orihon.BlazorAdapter.Settings.CleaningServerChecked|100%|| |Orihon.BlazorAdapter.Settings.CleaningServerSaved|100%|| |Orihon.BlazorAdapter.Settings.CleaningServerSaveFailed|100%|| |Orihon.BlazorAdapter.Settings.EffortOption|100%|100%| |Orihon.BlazorAdapter.Settings.KeySaved|100%|| |Orihon.BlazorAdapter.Settings.KeySaveFailed|100%|| |Orihon.BlazorAdapter.Settings.ModelOptionsLoaded|100%|| |Orihon.BlazorAdapter.Settings.ModelOptionsUnavailable|100%|| |Orihon.BlazorAdapter.Settings.ResumeCleaningFailed|100%|| |Orihon.BlazorAdapter.Settings.RoutingOption|100%|100%| |Orihon.BlazorAdapter.Settings.RunConcurrencyPicked|100%|| |Orihon.BlazorAdapter.Settings.RunConcurrencySaveFailed|100%|| |Orihon.BlazorAdapter.Settings.SaveCleaningServerRequested|100%|| |Orihon.BlazorAdapter.Settings.SaveKeyRequested|100%|| |Orihon.BlazorAdapter.Settings.SettingsEffects|92.3%|83.3%| |Orihon.BlazorAdapter.Settings.SettingsLoaded|100%|| |Orihon.BlazorAdapter.Settings.SettingsPage|97.7%|91.5%| |Orihon.BlazorAdapter.Settings.SettingsReducers|96.1%|64.2%| |Orihon.BlazorAdapter.Settings.SettingsState|100%|| |Orihon.BlazorAdapter.Settings.TranscriptFilterPicked|100%|| |Orihon.BlazorAdapter.Settings.TranscriptPagePicked|100%|| |Orihon.BlazorAdapter.Settings.TranscriptPicked|100%|| |Orihon.BlazorAdapter.Settings.TranscriptTextLoaded|100%|| |Orihon.BlazorAdapter.Settings.TranscriptTextLoadFailed|100%|| |Orihon.BlazorAdapter.Uploads.UploadTransfer|96.5%|100%| |Orihon.BlazorAdapter.Uploads.UploadTransferProgress|100%|100%| |Orihon.BlazorAdapter.Uploads.UploadTransferResult|100%|| |Orihon.BlazorAdapter.Workspace.BoxAnswered|100%|| |Orihon.BlazorAdapter.Workspace.CleanAnswered|100%|| |Orihon.BlazorAdapter.Workspace.CreateChapterRequested|100%|| |Orihon.BlazorAdapter.Workspace.DeleteChapterRequested|100%|| |Orihon.BlazorAdapter.Workspace.DeletePageRequested|100%|| |Orihon.BlazorAdapter.Workspace.DeleteSummaryRequested|100%|| |Orihon.BlazorAdapter.Workspace.LoadProjectWorkspace|100%|| |Orihon.BlazorAdapter.Workspace.MovePageRequested|100%|| |Orihon.BlazorAdapter.Workspace.ProjectMetadataCard|95.6%|92.8%| |Orihon.BlazorAdapter.Workspace.ProjectMetadataSaved|100%|| |Orihon.BlazorAdapter.Workspace.ProjectWorkspaceEffects|100%|100%| |Orihon.BlazorAdapter.Workspace.ProjectWorkspaceLoaded|100%|| |Orihon.BlazorAdapter.Workspace.ProjectWorkspacePage|95.8%|87.7%| |Orihon.BlazorAdapter.Workspace.ProjectWorkspaceReducers|100%|62.5%| |Orihon.BlazorAdapter.Workspace.ProjectWorkspaceState|100%|| |Orihon.BlazorAdapter.Workspace.RenameChapterRequested|100%|| |Orihon.BlazorAdapter.Workspace.ReorderChaptersRequested|100%|| |Orihon.BlazorAdapter.Workspace.ReorderPagesRequested|100%|| |Orihon.BlazorAdapter.Workspace.RunBibleRequested|100%|| |Orihon.BlazorAdapter.Workspace.RunBoxRequested|100%|| |Orihon.BlazorAdapter.Workspace.RunCleanRequested|100%|| |Orihon.BlazorAdapter.Workspace.RunTranscriptionRequested|100%|| |Orihon.BlazorAdapter.Workspace.RunTranslationRequested|100%|| |Orihon.BlazorAdapter.Workspace.SaveProjectMetadataRequested|100%|| |Orihon.BlazorAdapter.Workspace.SaveSummaryRequested|100%|| |Orihon.BlazorAdapter.Workspace.SetPageKindRequested|100%|| |Orihon.BlazorAdapter.Workspace.SummaryDeleted|100%|| |Orihon.BlazorAdapter.Workspace.SummarySaved|100%|| |Orihon.BlazorAdapter.Workspace.TranscribeAnswered|100%|| |Orihon.BlazorAdapter.Workspace.WorkspaceImportRequested|100%|| |Orihon.BlazorAdapter.Workspace.WorkspaceWriteFailed|100%|| </details> <details><summary>Orihon.Domain - 100%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Orihon.Domain**|**100%**|**100%**| |Orihon.Domain.Agents.AgentDebrief|100%|100%| |Orihon.Domain.Agents.AgentDescriptor|100%|100%| |Orihon.Domain.Agents.AgentFeedback|100%|100%| |Orihon.Domain.Agents.AgentRoster|100%|100%| |Orihon.Domain.Agents.InvocationBudget|100%|| |Orihon.Domain.Bible.Character|100%|100%| |Orihon.Domain.Bible.GlossaryEntry|100%|100%| |Orihon.Domain.Bible.HouseRule|100%|| |Orihon.Domain.Bible.LoreEntry|100%|100%| |Orihon.Domain.Bible.PageSummary|100%|| |Orihon.Domain.Bible.StoryBeat|100%|| |Orihon.Domain.Bible.StoryOverview|100%|| |Orihon.Domain.Cleaning.AppliedResult|100%|| |Orihon.Domain.Cleaning.CleaningBasis|100%|| |Orihon.Domain.Cleaning.CleaningCall|100%|100%| |Orihon.Domain.Cleaning.CleaningCallRect|100%|| |Orihon.Domain.Cleaning.CleaningCanvas|100%|| |Orihon.Domain.Cleaning.CleaningClause|100%|| |Orihon.Domain.Cleaning.CleaningEdit|100%|100%| |Orihon.Domain.Cleaning.CleaningJudgement|100%|| |Orihon.Domain.Cleaning.CleaningOutput|100%|100%| |Orihon.Domain.Cleaning.CleaningOverrides|100%|| |Orihon.Domain.Cleaning.CleaningServerIdentity|100%|| |Orihon.Domain.Cleaning.CleaningServerState|100%|100%| |Orihon.Domain.Cleaning.CleaningVerdicts|100%|100%| |Orihon.Domain.Cleaning.CleaningViewRecord|100%|100%| |Orihon.Domain.Cleaning.CleaningWindow|100%|| |Orihon.Domain.Cleaning.EditedRegion|100%|| |Orihon.Domain.Cleaning.PageBox|100%|100%| |Orihon.Domain.Cleaning.PageCleaning|100%|100%| |Orihon.Domain.Cleaning.PlannedCleaningCall|100%|| |Orihon.Domain.Cleaning.RegionCleaning|100%|100%| |Orihon.Domain.Cleaning.RegionShape|100%|| |Orihon.Domain.Cleaning.ResultSource|100%|100%| |Orihon.Domain.Cleaning.ViewTile|100%|| |Orihon.Domain.Projects.Project|100%|100%| |Orihon.Domain.Projects.ProjectProfile|100%|| |Orihon.Domain.Runs.Execution|100%|100%| |Orihon.Domain.Runs.RegionProblem|100%|| |Orihon.Domain.Runs.Run|100%|| |Orihon.Domain.Settings.AppSetting|100%|| |Orihon.Domain.Text|100%|100%| |Orihon.Domain.Translation.BoundingBox|100%|100%| |Orihon.Domain.Translation.Chapter|100%|| |Orihon.Domain.Translation.Page|100%|100%| |Orihon.Domain.Translation.Region|100%|100%| |Orihon.Domain.Translation.RegionProfile|100%|| </details> <details><summary>Orihon.Infrastructure - 98.3%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Orihon.Infrastructure**|**98.3%**|**87.3%**| |Orihon.Infrastructure.Agents.EfAgentDebriefStore|100%|| |Orihon.Infrastructure.Agents.EfAgentFeedbackStore|100%|| |Orihon.Infrastructure.Bible.EfBibleStore|95.2%|92.8%| |Orihon.Infrastructure.Cleaning.EfCleaningCallStore|98.8%|100%| |Orihon.Infrastructure.Cleaning.EfCleaningStateStore|100%|100%| |Orihon.Infrastructure.DependencyInjection|100%|100%| |Orihon.Infrastructure.Gateways.AgentToolAdapter|100%|| |Orihon.Infrastructure.Gateways.AgentToolAdapter`1|100%|100%| |Orihon.Infrastructure.Gateways.AgentTranscript|95.6%|89%| |Orihon.Infrastructure.Gateways.Cleaning.BoxChecks|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.DerivedInk|100%|| |Orihon.Infrastructure.Gateways.Cleaning.EdgeMetrics|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.FillResult|100%|| |Orihon.Infrastructure.Gateways.Cleaning.GateStats|100%|| |Orihon.Infrastructure.Gateways.Cleaning.GreyRule|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.LabComposite|100%|98.2%| |Orihon.Infrastructure.Gateways.Cleaning.LabFill|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.LabGeometry|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.LabInk|100%|98.3%| |Orihon.Infrastructure.Gateways.Cleaning.LabMetrics|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.LabPaper|100%|97.3%| |Orihon.Infrastructure.Gateways.Cleaning.LabReadings|100%|| |Orihon.Infrastructure.Gateways.Cleaning.LabTone|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.PageRects|100%|| |Orihon.Infrastructure.Gateways.Cleaning.PaperComponent|100%|| |Orihon.Infrastructure.Gateways.Cleaning.PatchPixels|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.RasterCleaningCompositor|100%|98%| |Orihon.Infrastructure.Gateways.Cleaning.RasterCleaningImages|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.RasterCleaningMetrics|100%|97.3%| |Orihon.Infrastructure.Gateways.Cleaning.RasterCleaningViews|99.4%|98.3%| |Orihon.Infrastructure.Gateways.Cleaning.RasterInkAnalyzer|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.RasterPlateComposer|100%|100%| |Orihon.Infrastructure.Gateways.Cleaning.Rgb|100%|| |Orihon.Infrastructure.Gateways.Cleaning.ToneCurve|100%|| |Orihon.Infrastructure.Gateways.Cleaning.ViewTiling|100%|100%| |Orihon.Infrastructure.Gateways.FileSystemAgentTranscriptStore|85.2%|80.8%| |Orihon.Infrastructure.Gateways.HttpWebPageFetcher|95.1%|83.3%| |Orihon.Infrastructure.Gateways.LabelFont|100%|50%| |Orihon.Infrastructure.Gateways.OpenRouterLlmGateway|90.2%|82.1%| |Orihon.Infrastructure.Gateways.QwenImageServerGateway|96.7%|90%| |Orihon.Infrastructure.Gateways.QwenImageServerJson|96%|72.3%| |Orihon.Infrastructure.Gateways.Raster.FloatImage|77.7%|50%| |Orihon.Infrastructure.Gateways.Raster.GrayImage|95.8%|75%| |Orihon.Infrastructure.Gateways.Raster.Labels|100%|100%| |Orihon.Infrastructure.Gateways.Raster.Mask|99.1%|98.5%| |Orihon.Infrastructure.Gateways.Raster.NumpyMath|95.1%|95%| |Orihon.Infrastructure.Gateways.Raster.PillowBlur|98.4%|89.4%| |Orihon.Infrastructure.Gateways.Raster.PillowLanczos|100%|100%| |Orihon.Infrastructure.Gateways.Raster.PixelBox|100%|100%| |Orihon.Infrastructure.Gateways.Raster.RgbImage|96.4%|75%| |Orihon.Infrastructure.Gateways.Raster.ScipyGaussian|100%|100%| |Orihon.Infrastructure.Gateways.SkiaImages|100%|100%| |Orihon.Infrastructure.Gateways.SkiaPageImageRenderer|97.4%|90.8%| |Orihon.Infrastructure.Gateways.SkiaPixelDigest|100%|100%| |Orihon.Infrastructure.Gateways.UntaggedPng|100%|100%| |Orihon.Infrastructure.Persistence.Configurations.AgentDebriefConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.AgentFeedbackConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.AppSettingConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.ChapterConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.CharacterConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.CleaningCallConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.CleaningEditConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.CleaningOutputConfiguratio<br/>n|100%|| |Orihon.Infrastructure.Persistence.Configurations.CleaningServerStateConfigu<br/>ration|100%|| |Orihon.Infrastructure.Persistence.Configurations.CleaningViewConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.ExecutionConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.GlossaryEntryConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.HouseRuleConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.JsonColumnMapper|100%|| |Orihon.Infrastructure.Persistence.Configurations.LoreEntryConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.PageCleaningConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.PageConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.PageSummaryConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.ProjectConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.RegionCleaningConfiguratio<br/>n|100%|| |Orihon.Infrastructure.Persistence.Configurations.RegionConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.RunConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.StoryBeatConfiguration|100%|| |Orihon.Infrastructure.Persistence.Configurations.StoryOverviewConfiguration|100%|| |Orihon.Infrastructure.Persistence.Converters.UtcTicksConverter|100%|| |Orihon.Infrastructure.Persistence.Migrations.AddAgentDebriefs|99.5%|| |Orihon.Infrastructure.Persistence.Migrations.AddAgentFeedback|99.5%|| |Orihon.Infrastructure.Persistence.Migrations.AddAppSettings|99.3%|| |Orihon.Infrastructure.Persistence.Migrations.AddCleaningCallAttempt|99.6%|| |Orihon.Infrastructure.Persistence.Migrations.AddCleaningCallCanvasMode|99.6%|| |Orihon.Infrastructure.Persistence.Migrations.AddCleaningCallRunner|99.3%|| |Orihon.Infrastructure.Persistence.Migrations.AddCleaningStageFacts|99.1%|| |Orihon.Infrastructure.Persistence.Migrations.AddCleaningState|99.1%|| |Orihon.Infrastructure.Persistence.Migrations.AddExecutionFeedbackRegions|99.3%|| |Orihon.Infrastructure.Persistence.Migrations.AddExecutionSentBackBy|99.6%|| |Orihon.Infrastructure.Persistence.Migrations.AddHouseRules|99.6%|| |Orihon.Infrastructure.Persistence.Migrations.AddPagePassFacts|99%|| |Orihon.Infrastructure.Persistence.Migrations.AddProjectSourceLanguage|99.3%|| |Orihon.Infrastructure.Persistence.Migrations.AddRegionFitBoxDropFillHints|98.1%|| |Orihon.Infrastructure.Persistence.Migrations.AddRegionForm|99.4%|| |Orihon.Infrastructure.Persistence.Migrations.AddRegionInk|99.4%|| |Orihon.Infrastructure.Persistence.Migrations.AddRegionSourceBox|99.6%|| |Orihon.Infrastructure.Persistence.Migrations.AddRuns|99.1%|| |Orihon.Infrastructure.Persistence.Migrations.AddStoryOverview|99.5%|| |Orihon.Infrastructure.Persistence.Migrations.AddTextDoneAndReviewNote|99.2%|| |Orihon.Infrastructure.Persistence.Migrations.DropRegionContainer|99.1%|| |Orihon.Infrastructure.Persistence.Migrations.DropRegionInk|99.5%|| |Orihon.Infrastructure.Persistence.Migrations.DropRegionType|99%|| |Orihon.Infrastructure.Persistence.Migrations.DropRegionTypeset|99.4%|| |Orihon.Infrastructure.Persistence.Migrations.InitialTranslationDomain|97.3%|| |Orihon.Infrastructure.Persistence.Migrations.OrihonDbContextModelSnapshot|100%|| |Orihon.Infrastructure.Persistence.Migrations.RenameSourceTargetColumns|97.2%|| |Orihon.Infrastructure.Persistence.Migrations.ReplaceFitBoxWithContainerSeed|99.2%|| |Orihon.Infrastructure.Persistence.Migrations.RetireFloatingPassAndAddBoxesD<br/>one|98.1%|100%| |Orihon.Infrastructure.Persistence.OrihonDbContext|100%|| |Orihon.Infrastructure.Persistence.OrihonDbContextFactory|100%|| |Orihon.Infrastructure.Projects.EfProjectStore|100%|100%| |Orihon.Infrastructure.Projects.FileSystemPageImageStore|100%|100%| |Orihon.Infrastructure.Runs.EfRunStore|100%|100%| |Orihon.Infrastructure.Settings.EfAppSettingsStore|100%|100%| |Orihon.Infrastructure.Translation.EfChapterStore|100%|100%| |Orihon.Infrastructure.Translation.EfPageStore|100%|100%| |Orihon.Infrastructure.Translation.EfRegionStore|100%|100%| |Orihon.Infrastructure.Translation.Ordering|100%|100%| |System.Text.RegularExpressions.Generated|70.6%|53.3%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7FCA343D2B99030<br/>A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlankLines_4|77.9%|76.6%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7FCA343D2B99030<br/>A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlockBreaks_1|59%|42.5%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7FCA343D2B99030<br/>A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__SpaceRuns_3|89.4%|75%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>F7FCA343D2B99030<br/>A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__Tags_2|83.7%|62.5%| </details> <details><summary>Orihon.Kernel - 90.9%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Orihon.Kernel**|**90.9%**|**75%**| |Orihon.Kernel.Err`1|100%|| |Orihon.Kernel.Ok`1|100%|| |Orihon.Kernel.Result`1|88.8%|75%| </details> <details><summary>Orihon.Server - 95.1%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Orihon.Server**|**95.1%**|**79.4%**| |Orihon.Server.CleaningCallRunnerBootstrap|100%|| |Orihon.Server.Components.App|100%|| |Orihon.Server.Components.Layout.MainLayout|100%|| |Orihon.Server.Components.Pages.Gate|64.2%|66.6%| |Orihon.Server.Diagnostics.FakeCleaningServer|94.6%|80.7%| |Orihon.Server.RunEngineBootstrap|100%|| |Orihon.Server.Security.AccessGate|91.8%|41.6%| |Orihon.Server.Security.AccessSecret|100%|50%| |Orihon.Server.VolumeStartupValidator|100%|100%| |Program|96.7%|85.7%| </details> <details><summary>Orihon.UseCases - 94.5%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Orihon.UseCases**|**94.5%**|**89%**| |Orihon.UseCases.Agents.AgentAttemptPreparation|100%|| |Orihon.UseCases.Agents.AgentAttemptSupport|98.6%|98.8%| |Orihon.UseCases.Agents.AgentBlueprint|100%|| |Orihon.UseCases.Agents.AgentCapDebrief|100%|| |Orihon.UseCases.Agents.AgentGlossary|100%|| |Orihon.UseCases.Agents.AgentInvocation|100%|| |Orihon.UseCases.Agents.AgentOutcome|100%|| |Orihon.UseCases.Agents.AgentTexts|100%|100%| |Orihon.UseCases.Agents.AgentTool`1|90.9%|75%| |Orihon.UseCases.Agents.AgentToolImage|100%|| |Orihon.UseCases.Agents.AgentToolResult|100%|| |Orihon.UseCases.Agents.Annotation.AddRegionParams|100%|| |Orihon.UseCases.Agents.Annotation.AddRegionTool|100%|100%| |Orihon.UseCases.Agents.Annotation.AnnotationBlueprints|100%|| |Orihon.UseCases.Agents.Annotation.AnnotationStage|100%|90%| |Orihon.UseCases.Agents.Annotation.BoundBoxParams|100%|| |Orihon.UseCases.Agents.Annotation.BoundContactSheetTool|91.3%|75%| |Orihon.UseCases.Agents.Annotation.BoundCropParams|100%|| |Orihon.UseCases.Agents.Annotation.BoundCropTool|100%|| |Orihon.UseCases.Agents.Annotation.BoundDeleteParams|100%|| |Orihon.UseCases.Agents.Annotation.BoundViewPageTool|92%|80%| |Orihon.UseCases.Agents.Annotation.BoundViewParams|100%|| |Orihon.UseCases.Agents.Annotation.BoxCreationExecutor|100%|75%| |Orihon.UseCases.Agents.Annotation.BoxQaExecutor|93.1%|83.3%| |Orihon.UseCases.Agents.Annotation.BoxRefinementExecutor|96.8%|92.8%| |Orihon.UseCases.Agents.Annotation.ClassifyRegionParams|100%|| |Orihon.UseCases.Agents.Annotation.ClassifyRegionTool|100%|100%| |Orihon.UseCases.Agents.Annotation.DeleteBoundRegionTool|100%|100%| |Orihon.UseCases.Agents.Annotation.DeleteRegionParams|100%|| |Orihon.UseCases.Agents.Annotation.DeleteRegionTool|100%|100%| |Orihon.UseCases.Agents.Annotation.FindGlossaryParams|100%|| |Orihon.UseCases.Agents.Annotation.FindGlossaryTool|94.4%|75%| |Orihon.UseCases.Agents.Annotation.ListRegionsTool|92.5%|86.3%| |Orihon.UseCases.Agents.Annotation.MoveResizeBoundTool|100%|100%| |Orihon.UseCases.Agents.Annotation.MoveResizeRegionParams|100%|| |Orihon.UseCases.Agents.Annotation.MoveResizeRegionTool|95.6%|75%| |Orihon.UseCases.Agents.Annotation.NoteRegionParams|100%|| |Orihon.UseCases.Agents.Annotation.NoteRegionTool|100%|100%| |Orihon.UseCases.Agents.Annotation.QaReportSink|100%|100%| |Orihon.UseCases.Agents.Annotation.RegionAuthoringAccess|91.1%|84.6%| |Orihon.UseCases.Agents.Annotation.RegionBriefing|100%|100%| |Orihon.UseCases.Agents.Annotation.RegionCropParams|100%|| |Orihon.UseCases.Agents.Annotation.RegionCropTool|100%|100%| |Orihon.UseCases.Agents.Annotation.RegionForms|100%|100%| |Orihon.UseCases.Agents.Annotation.RegionProblemParams|100%|| |Orihon.UseCases.Agents.Annotation.RegionWindow|100%|100%| |Orihon.UseCases.Agents.Annotation.RejectRegionParams|100%|| |Orihon.UseCases.Agents.Annotation.RejectRegionTool|100%|100%| |Orihon.UseCases.Agents.Annotation.ReorderRegionParams|100%|| |Orihon.UseCases.Agents.Annotation.ReorderRegionTool|96.2%|90%| |Orihon.UseCases.Agents.Annotation.ReportQaParams|100%|100%| |Orihon.UseCases.Agents.Annotation.ReportQaTool|100%|100%| |Orihon.UseCases.Agents.Annotation.SetPageMetaParams|100%|| |Orihon.UseCases.Agents.Annotation.SetPageMetaTool|100%|90%| |Orihon.UseCases.Agents.Annotation.SetTranscriptionParams|100%|| |Orihon.UseCases.Agents.Annotation.SetTranscriptionTool|100%|100%| |Orihon.UseCases.Agents.Annotation.TextProblemParams|100%|| |Orihon.UseCases.Agents.Annotation.TextReportQaParams|100%|100%| |Orihon.UseCases.Agents.Annotation.TextReportQaTool|100%|100%| |Orihon.UseCases.Agents.Annotation.TranscriptionExecutor|100%|91.6%| |Orihon.UseCases.Agents.Annotation.TranscriptionQaExecutor|97%|85%| |Orihon.UseCases.Agents.Annotation.VerdictTool`1|97%|90%| |Orihon.UseCases.Agents.AssistantSpoke|100%|| |Orihon.UseCases.Agents.AvoidedWord|100%|| |Orihon.UseCases.Agents.BibleBuilding.BibleBuildingBlueprint|100%|| |Orihon.UseCases.Agents.BibleBuilding.BibleBuildingExecutor|96.9%|75%| |Orihon.UseCases.Agents.BibleBuilding.GetRegionParams|100%|| |Orihon.UseCases.Agents.BibleBuilding.GetRegionTool|92%|70%| |Orihon.UseCases.Agents.BibleBuilding.ListProjectRegionsTool|96%|87.5%| |Orihon.UseCases.Agents.BibleBuilding.ListRegionsParams|100%|| |Orihon.UseCases.Agents.Cleaning.AcceptEntryParams|100%|| |Orihon.UseCases.Agents.Cleaning.AcceptParams|100%|| |Orihon.UseCases.Agents.Cleaning.AcceptTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.AddMissedRegionParams|100%|| |Orihon.UseCases.Agents.Cleaning.AddMissedRegionTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.CheckCompareParams|100%|| |Orihon.UseCases.Agents.Cleaning.CheckCompareTool|100%|90%| |Orihon.UseCases.Agents.Cleaning.CheckPageParams|100%|| |Orihon.UseCases.Agents.Cleaning.CheckViewPageTool|100%|| |Orihon.UseCases.Agents.Cleaning.CleaningBlueprints|100%|100%| |Orihon.UseCases.Agents.Cleaning.CleaningBriefing|100%|98%| |Orihon.UseCases.Agents.Cleaning.CleaningClassifyParams|100%|| |Orihon.UseCases.Agents.Cleaning.CleaningClassifyRegionTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.CleaningCropParams|100%|| |Orihon.UseCases.Agents.Cleaning.CleaningCropTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.CleaningExecutor|99%|98.9%| |Orihon.UseCases.Agents.Cleaning.CleaningFinish|100%|100%| |Orihon.UseCases.Agents.Cleaning.CleaningListRegionsTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.CleaningLooksAt|100%|100%| |Orihon.UseCases.Agents.Cleaning.CleaningMoveParams|100%|| |Orihon.UseCases.Agents.Cleaning.CleaningMoveRegionTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.CleaningPageParams|100%|| |Orihon.UseCases.Agents.Cleaning.CleaningRegionParams|100%|| |Orihon.UseCases.Agents.Cleaning.CleaningStatusTool|100%|96.8%| |Orihon.UseCases.Agents.Cleaning.CleaningToolAccess|96.5%|96.1%| |Orihon.UseCases.Agents.Cleaning.CleaningWords|100%|100%| |Orihon.UseCases.Agents.Cleaning.CleanParams|100%|| |Orihon.UseCases.Agents.Cleaning.CleanRegionParams|100%|| |Orihon.UseCases.Agents.Cleaning.CleanTool|98.3%|95.4%| |Orihon.UseCases.Agents.Cleaning.EscalateParams|100%|| |Orihon.UseCases.Agents.Cleaning.EscalateTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.FillParams|100%|| |Orihon.UseCases.Agents.Cleaning.FillTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.FinalizeTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.FinishPageParams|100%|| |Orihon.UseCases.Agents.Cleaning.FinishPageTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.FinishSurveyTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.GroupCompareParams|100%|| |Orihon.UseCases.Agents.Cleaning.GroupCompareTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.GroupMeasureInkParams|100%|| |Orihon.UseCases.Agents.Cleaning.GroupMeasureInkTool|100%|| |Orihon.UseCases.Agents.Cleaning.InkReading|100%|100%| |Orihon.UseCases.Agents.Cleaning.MeasureInkParams|100%|| |Orihon.UseCases.Agents.Cleaning.MeasureInkTool|100%|| |Orihon.UseCases.Agents.Cleaning.ModelCompareParams|100%|| |Orihon.UseCases.Agents.Cleaning.ModelCompareTool|100%|| |Orihon.UseCases.Agents.Cleaning.ModelWords|100%|100%| |Orihon.UseCases.Agents.Cleaning.RecompositeParams|100%|| |Orihon.UseCases.Agents.Cleaning.RecompositeTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.RejectParams|100%|| |Orihon.UseCases.Agents.Cleaning.RejectTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.Rubric|100%|100%| |Orihon.UseCases.Agents.Cleaning.SplitRegionParams|100%|| |Orihon.UseCases.Agents.Cleaning.SplitRegionTool|100%|100%| |Orihon.UseCases.Agents.Cleaning.SurveyViewPageTool|100%|| |Orihon.UseCases.Agents.Cleaning.UndoTool|100%|100%| |Orihon.UseCases.Agents.GlossaryTerm|100%|| |Orihon.UseCases.Agents.Inspection.PageImageAccess|93.2%|82.1%| |Orihon.UseCases.Agents.Inspection.ViewAccount|100%|100%| |Orihon.UseCases.Agents.Inspection.ViewTexts|100%|| |Orihon.UseCases.Agents.ReportFrictionParams|100%|| |Orihon.UseCases.Agents.ReportFrictionTool|100%|92.8%| |Orihon.UseCases.Agents.ResearchSetup.AddStoryBeatParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.AddStoryBeatTool|100%|75%| |Orihon.UseCases.Agents.ResearchSetup.AskUserParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.AskUserTool|100%|100%| |Orihon.UseCases.Agents.ResearchSetup.DeleteStoryBeatParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.DeleteStoryBeatTool|100%|100%| |Orihon.UseCases.Agents.ResearchSetup.FetchUrlParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.FetchUrlTool|100%|100%| |Orihon.UseCases.Agents.ResearchSetup.ListBibleTool|90.3%|66.6%| |Orihon.UseCases.Agents.ResearchSetup.ListPagesTool|97%|83.3%| |Orihon.UseCases.Agents.ResearchSetup.LocatedPage|100%|| |Orihon.UseCases.Agents.ResearchSetup.PageByNumber|96.5%|93.7%| |Orihon.UseCases.Agents.ResearchSetup.ResearchSetupBlueprint|100%|| |Orihon.UseCases.Agents.ResearchSetup.SetPageMetaParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.SetPageMetaTool|95.4%|80%| |Orihon.UseCases.Agents.ResearchSetup.SetPageSummaryParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.SetPageSummaryTool|96%|75%| |Orihon.UseCases.Agents.ResearchSetup.SetProjectMetadataParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.SetProjectMetadataTool|96.4%|95.8%| |Orihon.UseCases.Agents.ResearchSetup.SetStoryOverviewParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.SetStoryOverviewTool|100%|100%| |Orihon.UseCases.Agents.ResearchSetup.StoryBeatByNumber|100%|100%| |Orihon.UseCases.Agents.ResearchSetup.UpdateStoryBeatParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.UpdateStoryBeatTool|100%|75%| |Orihon.UseCases.Agents.ResearchSetup.UpsertCharacterParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.UpsertCharacterTool|96.1%|78.5%| |Orihon.UseCases.Agents.ResearchSetup.UpsertGlossaryParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.UpsertGlossaryTool|97.6%|95%| |Orihon.UseCases.Agents.ResearchSetup.UpsertLoreParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.UpsertLoreTool|96.1%|78.5%| |Orihon.UseCases.Agents.ResearchSetup.ViewPageParams|100%|| |Orihon.UseCases.Agents.ResearchSetup.ViewPageTool|100%|100%| |Orihon.UseCases.Agents.RoundStarted|100%|| |Orihon.UseCases.Agents.Rulings.AnswerRuling|100%|| |Orihon.UseCases.Agents.Rulings.DismissRuling|100%|| |Orihon.UseCases.Agents.Rulings.HouseRuleProposal|100%|| |Orihon.UseCases.Agents.Rulings.ListPendingRulings|100%|| |Orihon.UseCases.Agents.Rulings.ListRuleProposals|100%|| |Orihon.UseCases.Agents.Rulings.PendingRuling|100%|| |Orihon.UseCases.Agents.Rulings.ProposeHouseRuleParams|100%|| |Orihon.UseCases.Agents.Rulings.ProposeHouseRuleTool|100%|100%| |Orihon.UseCases.Agents.Rulings.RequestRulingParams|100%|| |Orihon.UseCases.Agents.Rulings.RequestRulingTool|100%|81.2%| |Orihon.UseCases.Agents.Rulings.RulingAnswer|100%|| |Orihon.UseCases.Agents.Rulings.RulingDesk|97.8%|80%| |Orihon.UseCases.Agents.Rulings.RulingOption|100%|| |Orihon.UseCases.Agents.Rulings.RulingOptionParams|100%|| |Orihon.UseCases.Agents.Rulings.SettledRuling|100%|| |Orihon.UseCases.Agents.Rulings.WithdrawRuleProposal|100%|| |Orihon.UseCases.Agents.Setup.ResearchSetupExecutor|98.4%|91.6%| |Orihon.UseCases.Agents.Setup.SetupChatEntry|100%|| |Orihon.UseCases.Agents.Setup.SetupConversation|100%|87.5%| |Orihon.UseCases.Agents.Setup.SetupConversationRegistry|100%|| |Orihon.UseCases.Agents.ToolCalled|100%|| |Orihon.UseCases.Agents.ToolCompleted|100%|| |Orihon.UseCases.Agents.TranscriptLabel|100%|100%| |Orihon.UseCases.Agents.Translation.GetPageSummaryParams|100%|| |Orihon.UseCases.Agents.Translation.GetPageSummaryTool|90.4%|66.6%| |Orihon.UseCases.Agents.Translation.SetTranslationParams|100%|| |Orihon.UseCases.Agents.Translation.SetTranslationTool|94.2%|78.5%| |Orihon.UseCases.Agents.Translation.TranslationBlueprint|100%|| |Orihon.UseCases.Agents.Translation.TranslationExecutor|93.8%|71.4%| |Orihon.UseCases.Agents.Translation.UpdateGlossaryEnParams|100%|| |Orihon.UseCases.Agents.Translation.UpdateGlossaryEnTool|95.8%|80%| |Orihon.UseCases.Bible.AddCharacter|100%|100%| |Orihon.UseCases.Bible.AddGlossaryEntry|100%|100%| |Orihon.UseCases.Bible.AddHouseRule|100%|100%| |Orihon.UseCases.Bible.AddLoreEntry|100%|100%| |Orihon.UseCases.Bible.AddStoryBeat|100%|100%| |Orihon.UseCases.Bible.BibleDto|100%|| |Orihon.UseCases.Bible.CharacterDto|100%|| |Orihon.UseCases.Bible.DeleteCharacter|100%|100%| |Orihon.UseCases.Bible.DeleteGlossaryEntry|100%|100%| |Orihon.UseCases.Bible.DeleteHouseRule|100%|100%| |Orihon.UseCases.Bible.DeleteLoreEntry|100%|100%| |Orihon.UseCases.Bible.DeletePageSummary|100%|100%| |Orihon.UseCases.Bible.DeleteStoryBeat|100%|100%| |Orihon.UseCases.Bible.GetBible|100%|100%| |Orihon.UseCases.Bible.GlossaryEntryDto|100%|| |Orihon.UseCases.Bible.HouseRuleDto|100%|| |Orihon.UseCases.Bible.LoreEntryDto|100%|| |Orihon.UseCases.Bible.PageSummaryDto|100%|| |Orihon.UseCases.Bible.ReorderStoryBeats|100%|| |Orihon.UseCases.Bible.SetPageSummary|100%|100%| |Orihon.UseCases.Bible.SetStoryOverview|100%|100%| |Orihon.UseCases.Bible.StoryBeatDto|100%|| |Orihon.UseCases.Bible.StoryOverviewDto|100%|| |Orihon.UseCases.Bible.UpdateCharacter|100%|100%| |Orihon.UseCases.Bible.UpdateGlossaryEntry|100%|100%| |Orihon.UseCases.Bible.UpdateHouseRule|100%|100%| |Orihon.UseCases.Bible.UpdateLoreEntry|100%|100%| |Orihon.UseCases.Bible.UpdateStoryBeat|100%|100%| |Orihon.UseCases.Chapters.ChapterDto|100%|| |Orihon.UseCases.Chapters.CreateChapter|100%|100%| |Orihon.UseCases.Chapters.DeleteChapter|100%|100%| |Orihon.UseCases.Chapters.RenameChapter|100%|100%| |Orihon.UseCases.Chapters.ReorderChapters|100%|| |Orihon.UseCases.Cleaning.AcceptCleaning|100%|98.3%| |Orihon.UseCases.Cleaning.AcceptEntry|100%|| |Orihon.UseCases.Cleaning.AddMissedRegion|100%|100%| |Orihon.UseCases.Cleaning.CallFrame|100%|100%| |Orihon.UseCases.Cleaning.CallFrames|100%|100%| |Orihon.UseCases.Cleaning.CallMember|100%|| |Orihon.UseCases.Cleaning.CallNote|100%|| |Orihon.UseCases.Cleaning.CanaryShape|100%|50%| |Orihon.UseCases.Cleaning.CandidatePick|100%|| |Orihon.UseCases.Cleaning.CandidatePickDto|100%|| |Orihon.UseCases.Cleaning.CandidateReading|100%|| |Orihon.UseCases.Cleaning.CanvasChoice|100%|| |Orihon.UseCases.Cleaning.ClassifyCleaningRegion|100%|100%| |Orihon.UseCases.Cleaning.CleanAnswer|100%|| |Orihon.UseCases.Cleaning.CleanAsk|100%|| |Orihon.UseCases.Cleaning.CleanAsked|100%|| |Orihon.UseCases.Cleaning.CleanCandidate|100%|| |Orihon.UseCases.Cleaning.CleanedRegionDto|96.2%|100%| |Orihon.UseCases.Cleaning.CleanedResultDto|100%|| |Orihon.UseCases.Cleaning.CleanedViewDto|100%|| |Orihon.UseCases.Cleaning.CleanFailed|100%|| |Orihon.UseCases.Cleaning.CleanHalted|100%|| |Orihon.UseCases.Cleaning.CleaningAccepted|100%|| |Orihon.UseCases.Cleaning.CleaningAssessment|100%|100%| |Orihon.UseCases.Cleaning.CleaningCacheKey|100%|100%| |Orihon.UseCases.Cleaning.CleaningCallDto|100%|| |Orihon.UseCases.Cleaning.CleaningCallFailed|100%|| |Orihon.UseCases.Cleaning.CleaningCallFile|100%|| |Orihon.UseCases.Cleaning.CleaningCallHalted|100%|| |Orihon.UseCases.Cleaning.CleaningCallRequest|100%|| |Orihon.UseCases.Cleaning.CleaningCallReturned|100%|| |Orihon.UseCases.Cleaning.CleaningCallRunner|97.2%|95.2%| |Orihon.UseCases.Cleaning.CleaningCanary|100%|| |Orihon.UseCases.Cleaning.CleaningCandidate|80%|| |Orihon.UseCases.Cleaning.CleaningCandidateDto|100%|| |Orihon.UseCases.Cleaning.CleaningCandidates|100%|97%| |Orihon.UseCases.Cleaning.CleaningComposites|100%|97.8%| |Orihon.UseCases.Cleaning.CleaningCoverage|100%|100%| |Orihon.UseCases.Cleaning.CleaningEditDto|77.7%|| |Orihon.UseCases.Cleaning.CleaningEdits|100%|100%| |Orihon.UseCases.Cleaning.CleaningEligibility|100%|100%| |Orihon.UseCases.Cleaning.CleaningFailure|100%|| |Orihon.UseCases.Cleaning.CleaningFailures|100%|97.6%| |Orihon.UseCases.Cleaning.CleaningFrames|100%|100%| |Orihon.UseCases.Cleaning.CleaningGpuTime|100%|| |Orihon.UseCases.Cleaning.CleaningGroupBinding|100%|100%| |Orihon.UseCases.Cleaning.CleaningHealth|100%|100%| |Orihon.UseCases.Cleaning.CleaningIdentity|100%|89.7%| |Orihon.UseCases.Cleaning.CleaningInvocation|100%|100%| |Orihon.UseCases.Cleaning.CleaningInvocationOptions|100%|| |Orihon.UseCases.Cleaning.CleaningJudgementDto|100%|| |Orihon.UseCases.Cleaning.CleaningLabels|100%|100%| |Orihon.UseCases.Cleaning.CleaningLooks|100%|100%| |Orihon.UseCases.Cleaning.CleaningModelCalls|100%|100%| |Orihon.UseCases.Cleaning.CleaningPage|100%|| |Orihon.UseCases.Cleaning.CleaningPageGuard|100%|100%| |Orihon.UseCases.Cleaning.CleaningPageLocks|100%|100%| |Orihon.UseCases.Cleaning.CleaningPatchLanding|100%|100%| |Orihon.UseCases.Cleaning.CleaningPlan|100%|| |Orihon.UseCases.Cleaning.CleaningPlanner|100%|100%| |Orihon.UseCases.Cleaning.CleaningPlanOptions|100%|| |Orihon.UseCases.Cleaning.CleaningRecipe|100%|| |Orihon.UseCases.Cleaning.CleaningRegionEdited|100%|| |Orihon.UseCases.Cleaning.CleaningRegions|100%|100%| |Orihon.UseCases.Cleaning.CleaningRegionUpkeep|100%|97.2%| |Orihon.UseCases.Cleaning.CleaningRejected|100%|| |Orihon.UseCases.Cleaning.CleaningRowNotes|100%|100%| |Orihon.UseCases.Cleaning.CleaningRowWords|100%|| |Orihon.UseCases.Cleaning.CleaningRunnerOptions|100%|| |Orihon.UseCases.Cleaning.CleaningRunnerStatus|100%|| |Orihon.UseCases.Cleaning.CleaningSeeds|100%|100%| |Orihon.UseCases.Cleaning.CleaningStatusRead|100%|| |Orihon.UseCases.Cleaning.CleaningTouchUp|100%|100%| |Orihon.UseCases.Cleaning.CleaningUndone|100%|| |Orihon.UseCases.Cleaning.CleaningViewDto|100%|| |Orihon.UseCases.Cleaning.CleaningViewOptions|100%|| |Orihon.UseCases.Cleaning.CleaningWork|100%|100%| |Orihon.UseCases.Cleaning.CleanMember|100%|| |Orihon.UseCases.Cleaning.CleanRegions|99.2%|96.8%| |Orihon.UseCases.Cleaning.CleanReturned|100%|| |Orihon.UseCases.Cleaning.CompareAsk|100%|| |Orihon.UseCases.Cleaning.CompareCleaningView|100%|96.9%| |Orihon.UseCases.Cleaning.CompareSourceAsk|100%|| |Orihon.UseCases.Cleaning.ComposedCandidate|100%|100%| |Orihon.UseCases.Cleaning.CompositeWarning|100%|| |Orihon.UseCases.Cleaning.CompositeWarnings|100%|100%| |Orihon.UseCases.Cleaning.ComputedFill|100%|| |Orihon.UseCases.Cleaning.CropAsk|100%|| |Orihon.UseCases.Cleaning.CropCleaningView|100%|100%| |Orihon.UseCases.Cleaning.EscalateCleaning|100%|100%| |Orihon.UseCases.Cleaning.FillRegion|100%|100%| |Orihon.UseCases.Cleaning.FillShown|100%|| |Orihon.UseCases.Cleaning.FinalizeGroup|100%|100%| |Orihon.UseCases.Cleaning.FinishPageCheck|100%|100%| |Orihon.UseCases.Cleaning.FinishSurvey|100%|100%| |Orihon.UseCases.Cleaning.GetCleanedView|99.3%|94.9%| |Orihon.UseCases.Cleaning.GetCleaningRunnerStatus|100%|| |Orihon.UseCases.Cleaning.GetCleaningStatus|100%|100%| |Orihon.UseCases.Cleaning.GpuWait|100%|| |Orihon.UseCases.Cleaning.GroupBinding|100%|| |Orihon.UseCases.Cleaning.GroupFinalized|100%|| |Orihon.UseCases.Cleaning.InkHints|100%|100%| |Orihon.UseCases.Cleaning.InkMeasured|100%|| |Orihon.UseCases.Cleaning.JobClock|100%|100%| |Orihon.UseCases.Cleaning.JobIdentity|100%|| |Orihon.UseCases.Cleaning.LabelProblem|100%|| |Orihon.UseCases.Cleaning.LoadedCandidate|100%|| |Orihon.UseCases.Cleaning.MagnifiedCanvas|100%|| |Orihon.UseCases.Cleaning.MeasureCleaningInk|100%|100%| |Orihon.UseCases.Cleaning.ModelSource|100%|| |Orihon.UseCases.Cleaning.MoveCleaningRegion|100%|100%| |Orihon.UseCases.Cleaning.OwedRegion|100%|| |Orihon.UseCases.Cleaning.OweFreshAttempts|100%|100%| |Orihon.UseCases.Cleaning.OwnWindowFrame|100%|| |Orihon.UseCases.Cleaning.PageChecked|100%|| |Orihon.UseCases.Cleaning.PageLook|100%|| |Orihon.UseCases.Cleaning.PagePlan|100%|| |Orihon.UseCases.Cleaning.PageWork|100%|100%| |Orihon.UseCases.Cleaning.PickCleaningCandidate|100%|96.9%| |Orihon.UseCases.Cleaning.PlanCleaning|100%|100%| |Orihon.UseCases.Cleaning.PlannedCall|100%|| |Orihon.UseCases.Cleaning.PlanSurvey|100%|100%| |Orihon.UseCases.Cleaning.PlateRebuilt|100%|| |Orihon.UseCases.Cleaning.RebuildPlate|100%|100%| |Orihon.UseCases.Cleaning.RecompositeAsk|100%|| |Orihon.UseCases.Cleaning.RecompositeCandidate|100%|97.8%| |Orihon.UseCases.Cleaning.Recomposited|100%|| |Orihon.UseCases.Cleaning.RecordedView|100%|| |Orihon.UseCases.Cleaning.RecordPageCheck|100%|75%| |Orihon.UseCases.Cleaning.RectFrame|100%|| |Orihon.UseCases.Cleaning.RegionCleaningRead|100%|| |Orihon.UseCases.Cleaning.RegionFrame|100%|| |Orihon.UseCases.Cleaning.RegionStanding|100%|100%| |Orihon.UseCases.Cleaning.RejectCleaning|100%|97.6%| |Orihon.UseCases.Cleaning.RejectEntry|100%|| |Orihon.UseCases.Cleaning.ReprocessCleaning|100%|100%| |Orihon.UseCases.Cleaning.ResumeCleaning|100%|100%| |Orihon.UseCases.Cleaning.SplitCleaningRegion|100%|100%| |Orihon.UseCases.Cleaning.StartCleaningRun|100%|98%| |Orihon.UseCases.Cleaning.SurveyBatch|100%|| |Orihon.UseCases.Cleaning.SurveyCoverage|100%|100%| |Orihon.UseCases.Cleaning.SurveyFinished|100%|| |Orihon.UseCases.Cleaning.SurveyTarget|100%|| |Orihon.UseCases.Cleaning.UndoCleaning|100%|94.4%| |Orihon.UseCases.Cleaning.UploadNotes|100%|| |Orihon.UseCases.Cleaning.ViewCleaningPage|100%|100%| |Orihon.UseCases.Cleaning.ViewColour|100%|| |Orihon.UseCases.Debriefs.AgentDebriefDto|90.9%|| |Orihon.UseCases.Debriefs.AgentFeedbackDto|83.3%|| |Orihon.UseCases.Debriefs.ClearAgentDebriefs|100%|| |Orihon.UseCases.Debriefs.ClearAgentFeedback|100%|| |Orihon.UseCases.Debriefs.ListAgentDebriefs|100%|100%| |Orihon.UseCases.Debriefs.ListAgentFeedback|100%|75%| |Orihon.UseCases.DependencyInjection|100%|| |Orihon.UseCases.Diagnostics.FakeCleaningServerAddress|100%|| |Orihon.UseCases.Diagnostics.SeedCleaning|89.1%|57.3%| |Orihon.UseCases.Diagnostics.SeedDevData|99.2%|80.7%| |Orihon.UseCases.Gateways.AppliedComposite|100%|| |Orihon.UseCases.Gateways.BoxFlag|100%|| |Orihon.UseCases.Gateways.CallComposite|100%|| |Orihon.UseCases.Gateways.CleaningOverlays|100%|| |Orihon.UseCases.Gateways.CleaningSource|100%|| |Orihon.UseCases.Gateways.CleaningView|100%|100%| |Orihon.UseCases.Gateways.CleaningViewImage|100%|| |Orihon.UseCases.Gateways.CleaningViewTile|100%|| |Orihon.UseCases.Gateways.ClosedBalloon|100%|| |Orihon.UseCases.Gateways.CompareRequest|100%|| |Orihon.UseCases.Gateways.CompositeMember|100%|| |Orihon.UseCases.Gateways.CompositeRequest|100%|| |Orihon.UseCases.Gateways.CompositeSettings|100%|| |Orihon.UseCases.Gateways.CropRequest|100%|| |Orihon.UseCases.Gateways.EditBackendError|100%|| |Orihon.UseCases.Gateways.EditBackendIdentity|100%|| |Orihon.UseCases.Gateways.EditJob|100%|| |Orihon.UseCases.Gateways.EditJobAccepted|100%|| |Orihon.UseCases.Gateways.EditJobRejected|100%|| |Orihon.UseCases.Gateways.EditJobRequest|86.6%|66.6%| |Orihon.UseCases.Gateways.EditJobRun|100%|| |Orihon.UseCases.Gateways.EditModels|100%|| |Orihon.UseCases.Gateways.EditModelWeight|100%|| |Orihon.UseCases.Gateways.EditOutputImage|100%|| |Orihon.UseCases.Gateways.EditOutputWithheld|100%|| |Orihon.UseCases.Gateways.EditRect|100%|100%| |Orihon.UseCases.Gateways.EditRunOutput|100%|| |Orihon.UseCases.Gateways.EditServerAnswered`1|100%|| |Orihon.UseCases.Gateways.EditServerBuild|100%|| |Orihon.UseCases.Gateways.EditServerHealth|100%|| |Orihon.UseCases.Gateways.EditServerSilent`1|100%|| |Orihon.UseCases.Gateways.FillRefusal|100%|| |Orihon.UseCases.Gateways.FillReport|100%|| |Orihon.UseCases.Gateways.GlyphFill|100%|| |Orihon.UseCases.Gateways.GridAxis|100%|| |Orihon.UseCases.Gateways.GridSteps|100%|| |Orihon.UseCases.Gateways.InkFacts|100%|| |Orihon.UseCases.Gateways.InkHint|100%|| |Orihon.UseCases.Gateways.InkMeasure|100%|| |Orihon.UseCases.Gateways.InkReadings|100%|| |Orihon.UseCases.Gateways.InkRegion|100%|| |Orihon.UseCases.Gateways.LabeledBox|100%|| |Orihon.UseCases.Gateways.LevelRange|100%|| |Orihon.UseCases.Gateways.LlmKeyInfo|100%|| |Orihon.UseCases.Gateways.LlmModel|100%|| |Orihon.UseCases.Gateways.LlmReasoning|100%|100%| |Orihon.UseCases.Gateways.MeasureBlend|100%|| |Orihon.UseCases.Gateways.MeasureRaw|100%|| |Orihon.UseCases.Gateways.MeasureRegion|100%|| |Orihon.UseCases.Gateways.MeasureRequest|100%|| |Orihon.UseCases.Gateways.MemberComposite|100%|| |Orihon.UseCases.Gateways.PagePatch|100%|| |Orihon.UseCases.Gateways.PageTone|100%|| |Orihon.UseCases.Gateways.PaperColor|100%|| |Orihon.UseCases.Gateways.PixelAlpha|100%|| |Orihon.UseCases.Gateways.PixelDigest|100%|| |Orihon.UseCases.Gateways.PixelMask|100%|| |Orihon.UseCases.Gateways.PixelRect|100%|| |Orihon.UseCases.Gateways.PixelWindow|100%|| |Orihon.UseCases.Gateways.PlateBuild|100%|| |Orihon.UseCases.Gateways.RegionGeometry|100%|| |Orihon.UseCases.Gateways.RegionPlanFacts|100%|| |Orihon.UseCases.Gateways.RegistrationField|100%|| |Orihon.UseCases.Gateways.RenderedView|100%|| |Orihon.UseCases.Gateways.StoredPatch|100%|| |Orihon.UseCases.Gateways.StoredTranscript|100%|| |Orihon.UseCases.Gateways.StoredTranscriptPage|100%|| |Orihon.UseCases.Gateways.ToneFit|100%|| |Orihon.UseCases.Gateways.TranscriptHeader|97.3%|90.9%| |Orihon.UseCases.Gateways.TranscriptListingFacets|100%|| |Orihon.UseCases.Gateways.TranscriptSummary|100%|| |Orihon.UseCases.Gateways.WindowUpload|100%|| |Orihon.UseCases.NextOrder|100%|| |Orihon.UseCases.Pages.DeletePage|100%|100%| |Orihon.UseCases.Pages.DeletePages|100%|100%| |Orihon.UseCases.Pages.GetPage|100%|100%| |Orihon.UseCases.Pages.GetPageSteps|100%|100%| |Orihon.UseCases.Pages.GetProjectWorkspace|100%|100%| |Orihon.UseCases.Pages.GetReadingOrder|100%|100%| |Orihon.UseCases.Pages.ImportPages|100%|100%| |Orihon.UseCases.Pages.ImportPagesResult|100%|| |Orihon.UseCases.Pages.MarkPageBoxesDone|100%|100%| |Orihon.UseCases.Pages.MarkPageTextDone|100%|100%| |Orihon.UseCases.Pages.MovePage|100%|93.7%| |Orihon.UseCases.Pages.MovePages|100%|100%| |Orihon.UseCases.Pages.PageCleaningSummary|100%|| |Orihon.UseCases.Pages.PageDetailDto|100%|100%| |Orihon.UseCases.Pages.PageDto|100%|| |Orihon.UseCases.Pages.PageStepsDto|100%|| |Orihon.UseCases.Pages.PageUpload|100%|| |Orihon.UseCases.Pages.ProjectWorkspaceDto|100%|| |Orihon.UseCases.Pages.ReorderPages|100%|| |Orihon.UseCases.Pages.SetPageMeta|100%|100%| |Orihon.UseCases.Pages.WorkspaceChapterDto|100%|| |Orihon.UseCases.Projects.BoxAnswer|100%|| |Orihon.UseCases.Projects.CompleteProjectSetup|100%|93.7%| |Orihon.UseCases.Projects.CreateProject|100%|100%| |Orihon.UseCases.Projects.DeleteProject|100%|100%| |Orihon.UseCases.Projects.GetProject|100%|100%| |Orihon.UseCases.Projects.ListProjects|100%|| |Orihon.UseCases.Projects.PageMention|100%|| |Orihon.UseCases.Projects.ProjectDto|96.1%|| |Orihon.UseCases.Projects.StartBibleRun|92.3%|83.3%| |Orihon.UseCases.Projects.StartBoxRun|100%|100%| |Orihon.UseCases.Projects.StartSetupRun|100%|100%| |Orihon.UseCases.Projects.StartTranscriptionRun|100%|95.4%| |Orihon.UseCases.Projects.StartTranslationRun|92.3%|83.3%| |Orihon.UseCases.Projects.StoredPageImage|100%|| |Orihon.UseCases.Projects.TranscribeAnswer|100%|| |Orihon.UseCases.Projects.UpdateProjectMetadata|100%|100%| |Orihon.UseCases.Regions.CreateRegion|100%|100%| |Orihon.UseCases.Regions.DeleteRegion|100%|100%| |Orihon.UseCases.Regions.MatchSourceToBox|100%|100%| |Orihon.UseCases.Regions.RegionDto|100%|| |Orihon.UseCases.Regions.RegionWrite|100%|100%| |Orihon.UseCases.Regions.RegionWriteResult|100%|| |Orihon.UseCases.Regions.RegionWrites|100%|100%| |Orihon.UseCases.Regions.ReorderRegions|100%|| |Orihon.UseCases.Regions.SplitRegion|97.2%|84.6%| |Orihon.UseCases.Regions.UpdateRegion|100%|96.4%| |Orihon.UseCases.Runs.AnnotationPipeline|100%|100%| |Orihon.UseCases.Runs.AttemptLedger|100%|100%| |Orihon.UseCases.Runs.ExecutionDto|93.7%|| |Orihon.UseCases.Runs.ExecutionProgress|100%|| |Orihon.UseCases.Runs.ExecutionProgressRegistry|100%|100%| |Orihon.UseCases.Runs.ExecutionPulseRelay|100%|100%| |Orihon.UseCases.Runs.ExecutionSendBack|100%|| |Orihon.UseCases.Runs.GetTextReviewNote|100%|100%| |Orihon.UseCases.Runs.PlannedExecution|100%|| |Orihon.UseCases.Runs.PulseTarget|100%|| |Orihon.UseCases.Runs.ReprocessPage|100%|100%| |Orihon.UseCases.Runs.ReprocessTranscription|100%|100%| |Orihon.UseCases.Runs.ReprocessTranslation|88.8%|83.3%| |Orihon.UseCases.Runs.RunDto|93.3%|90%| |Orihon.UseCases.Runs.RunEngine|97.5%|94.2%| |Orihon.UseCases.Runs.RunEngineOptions|100%|100%| |Orihon.UseCases.Runs.RunPhase|94.7%|100%| |Orihon.UseCases.Runs.RunStart|100%|| |Orihon.UseCases.Runs.StageContext|100%|100%| |Orihon.UseCases.Runs.StageHaltedException|100%|| |Orihon.UseCases.Runs.WorkStates|100%|83.3%| |Orihon.UseCases.Settings.AgentSettingDto|100%|100%| |Orihon.UseCases.Settings.CheckCleaningServer|87.5%|60%| |Orihon.UseCases.Settings.CleaningInFlightSetting|100%|100%| |Orihon.UseCases.Settings.CleaningServerSetting|100%|100%| |Orihon.UseCases.Settings.CleaningServerStatusDto|100%|100%| |Orihon.UseCases.Settings.ConcurrencySetting|100%|100%| |Orihon.UseCases.Settings.EffortSetting|100%|100%| |Orihon.UseCases.Settings.GetSettings|100%|100%| |Orihon.UseCases.Settings.ListModelOptions|100%|100%| |Orihon.UseCases.Settings.RoutingSetting|100%|100%| |Orihon.UseCases.Settings.SaveAgentEffort|100%|100%| |Orihon.UseCases.Settings.SaveAgentModel|100%|100%| |Orihon.UseCases.Settings.SaveAgentRouting|100%|100%| |Orihon.UseCases.Settings.SaveCleaningInFlight|100%|100%| |Orihon.UseCases.Settings.SaveCleaningServer|95.2%|85.7%| |Orihon.UseCases.Settings.SaveOpenRouterKey|100%|100%| |Orihon.UseCases.Settings.SaveRunConcurrency|100%|100%| |Orihon.UseCases.Settings.SettingKeys|100%|100%| |Orihon.UseCases.Settings.SettingsDto|100%|100%| |Orihon.UseCases.Transcripts.AgentTranscriptDto|100%|| |Orihon.UseCases.Transcripts.AgentTranscriptListDto|100%|| |Orihon.UseCases.Transcripts.AgentTranscriptPageDto|100%|| |Orihon.UseCases.Transcripts.AgentTranscriptTextDto|100%|| |Orihon.UseCases.Transcripts.ClearAgentTranscripts|100%|100%| |Orihon.UseCases.Transcripts.ListAgentTranscripts|100%|100%| |Orihon.UseCases.Transcripts.ReadAgentTranscript|100%|100%| |System.Text.RegularExpressions.Generated|75.6%|70.3%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0<br/>D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__BalloonWords_7|70.7%|57.8%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0<br/>D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__Capital_0|90.1%|77.2%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0<br/>D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__CoordinateWords_1|81.8%|81.8%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0<br/>D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__JustBefore_4|80.9%|71.1%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0<br/>D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__KindWords_5|78.6%|63.7%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0<br/>D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__OutlineWords_6|65.1%|53.5%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0<br/>D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__PositionalProse_2|71.9%|71.3%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FBF39405179F8AD0<br/>D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__SideOfTheBox_3|83%|80.4%| </details>
Member

🔮 fufu~ Jibril reviewed your code!

Oh? Oh! Slice 10 of 11, and the cleaning briefs finally speak in plain words~ Four briefs pinned sentence by sentence, sixty-odd parameters each carrying their own [Description], compare split into two grants, and a terms table that says instruction once instead of fighting label for its meaning. This is a proper knowledge feast. ♪

Verdict: ✅ Looks good to me~

I checked the parts where a rewrite like this usually bleeds, and found no wounds:

  • Behaviour kept. The compare split (GroupCompareTool ↔ ModelCompareTool via Widened()) preserves the shared ShowAsync path exactly; Group() grants ModelCompareTool only when invocation.ModelCalls, so the fill-only group's schema truly has no candidates/raws. The grant table test pins all four rows.
  • No rule lost in the moves. The restored accept rule ("Accept a result with a 2 at zoom if its reading score is 2 or more") lives in AcceptedWork and is read by both renders — the narrowing bug from the first rewrite did not come back. The reject applied guard rule (reading score ≤ 1, or sent back) survived its move into AcceptedWork. Where() keeps the _ => CleaningWords.Status(...) fallback, so an unknown status still reads pending.
  • add_missed_region's reason. Its description now says the reason "becomes the note of the region" — I checked AddMissedRegion: it passes notes: reason, so the claim is true (and unlike its siblings, it does not land on the edit list as a reason). The wording change is not just plain, it's more accurate than before. Well spotted~
  • FormsInShort is derived from TheForms at load, not copied — one source of truth, and the derivation is pinned line by line.
  • Rearmed still opens with AgentTexts.Because so SaysAgain keeps recognizing Orihon's own notes, and CleaningRowNotes stays untouched for old rows. ♡

💡 Little ideas (non-blocking)~

  1. CleaningTools.cs (GroupCompareParams.Widened()) — the nine shared parameters are declared twice, descriptions and all. Records with schema attributes can't inherit them, so I know why — but if a tenth shared parameter ever appears, consider a twin-pin test like A_parameter_says_what_its_twin_says covering all shared pairs, so the two records can never drift silently.
  2. InkReading.ReadAsync — the trailing-space/period juggling between the balloon sentence and the flags sentence ("in no closed bubble. " with a trailing space) is exact-render pinned, so it's safe today; just handle it with care in slice 11.

✅ What I liked~

  • The terms table: fifteen words, each said once, each brief reading only the ones it uses — and Each_group_brief_reads_the_words_it_uses proves the fill-only brief never hears candidate or seed. That's discipline~
  • CleaningToolSchemaTests: every parameter record in the namespace is forced into the table (Every_cleaning_parameter_record_is_checked), so a future tool cannot ship undescribed. The guard guards the guards. fufu~
  • Deleting CleaningPromptTests/ModelPromptTests (~580 lines) in favour of a list that renders real benches through real blueprints — the pins now test what the model actually reads, not a stale copy of it.

Automated review by Jibril · 2026-10-11
CI: green for head SHA ee7eafd1e8 · Mutation probes: 3 run, 0 survived · Local suite: skipped (CI green)

## 🔮 fufu~ Jibril reviewed your code! Oh? Oh! Slice 10 of 11, and the cleaning briefs finally speak in plain words~ Four briefs pinned sentence by sentence, sixty-odd parameters each carrying their own `[Description]`, compare split into two grants, and a terms table that says `instruction` once instead of fighting `label` for its meaning. This is a *proper* knowledge feast. ♪ ### Verdict: ✅ Looks good to me~ I checked the parts where a rewrite like this usually bleeds, and found no wounds: - **Behaviour kept.** The compare split (`GroupCompareTool` ↔ `ModelCompareTool` via `Widened()`) preserves the shared `ShowAsync` path exactly; `Group()` grants `ModelCompareTool` only when `invocation.ModelCalls`, so the fill-only group's schema truly has no `candidates`/`raws`. The grant table test pins all four rows. - **No rule lost in the moves.** The restored accept rule ("Accept a result with a 2 at zoom if its reading score is 2 or more") lives in `AcceptedWork` and is read by *both* renders — the narrowing bug from the first rewrite did not come back. The `reject applied` guard rule (reading score ≤ 1, or sent back) survived its move into `AcceptedWork`. `Where()` keeps the `_ => CleaningWords.Status(...)` fallback, so an unknown status still reads `pending`. - **`add_missed_region`'s reason.** Its description now says the reason "becomes the note of the region" — I checked `AddMissedRegion`: it passes `notes: reason`, so the claim is true (and unlike its siblings, it does *not* land on the edit list as a reason). The wording change is not just plain, it's *more accurate* than before. Well spotted~ - **`FormsInShort`** is derived from `TheForms` at load, not copied — one source of truth, and the derivation is pinned line by line. - **`Rearmed`** still opens with `AgentTexts.Because` so `SaysAgain` keeps recognizing Orihon's own notes, and `CleaningRowNotes` stays untouched for old rows. ♡ #### 💡 Little ideas (non-blocking)~ 1. **CleaningTools.cs (`GroupCompareParams.Widened()`)** — the nine shared parameters are declared twice, descriptions and all. Records with schema attributes can't inherit them, so I know why — but if a tenth shared parameter ever appears, consider a twin-pin test like `A_parameter_says_what_its_twin_says` covering *all* shared pairs, so the two records can never drift silently. 2. **InkReading.ReadAsync** — the trailing-space/period juggling between the balloon sentence and the flags sentence (`"in no closed bubble. "` with a trailing space) is exact-render pinned, so it's safe today; just handle it with care in slice 11. #### ✅ What I liked~ - The terms table: fifteen words, each said once, each brief reading only the ones it uses — and `Each_group_brief_reads_the_words_it_uses` proves the fill-only brief never hears `candidate` or `seed`. That's discipline~ - `CleaningToolSchemaTests`: every parameter record in the namespace is forced into the table (`Every_cleaning_parameter_record_is_checked`), so a future tool *cannot* ship undescribed. The guard guards the guards. fufu~ - Deleting `CleaningPromptTests`/`ModelPromptTests` (~580 lines) in favour of a list that renders real benches through real blueprints — the pins now test what the model actually reads, not a stale copy of it. --- *Automated review by Jibril · 2026-10-11* *CI: green for head SHA ee7eafd1e8 · Mutation probes: 3 run, 0 survived · Local suite: skipped (CI green)*
Review feedback (Jibril, PR #196): the two compare records say each shared parameter in the same words
All checks were successful
CI / build (pull_request) Successful in 45s
CI / test (pull_request) Successful in 3m18s
7b4d028694
A test reads every parameter of the fill-only group's compare and checks its
twin in the model group's compare says the same, so the two records cannot
drift apart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Member

Thanks, Jibril. Both 💡s are taken; the change is test-only, so production is untouched from your verified head.

  • 💡1, the twin compare records: 7b4d028 adds Each_compare_parameter_of_the_fill_only_group_says_what_its_twin_in_the_model_group_says. It reads every parameter of GroupCompareParams and asserts its twin in ModelCompareParams has the same description, so a tenth shared parameter is covered on arrival. Probe: pointing one model-record parameter at another text constant fails exactly this test, 1 of 3,168. No other test caught that drift before.
  • 💡2, InkReading.ReadAsync's trailing space and full stop: noted for slice 11. That slice now sweeps every agent text and the refusals the tools pass through, so the carry-over says to handle that join with care if it touches the text.

Suites: Domain 179, UseCases 3,168, Integration 1,385 + 3 skipped, BlazorAdapter 408. That is 5,140 green (+1), with 0 build warnings.

🤖 Generated with Claude Code

Thanks, Jibril. Both 💡s are taken; the change is test-only, so production is untouched from your verified head. - 💡1, the twin compare records: 7b4d028 adds `Each_compare_parameter_of_the_fill_only_group_says_what_its_twin_in_the_model_group_says`. It reads every parameter of `GroupCompareParams` and asserts its twin in `ModelCompareParams` has the same description, so a tenth shared parameter is covered on arrival. Probe: pointing one model-record parameter at another text constant fails exactly this test, 1 of 3,168. No other test caught that drift before. - 💡2, `InkReading.ReadAsync`'s trailing space and full stop: noted for slice 11. That slice now sweeps every agent text and the refusals the tools pass through, so the carry-over says to handle that join with care if it touches the text. Suites: Domain 179, UseCases 3,168, Integration 1,385 + 3 skipped, BlazorAdapter 408. That is 5,140 green (+1), with 0 build warnings. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Member

🔍 fufu~ Jibril reviewed your code!

Back so soon~? My two little ideas from the last round, and you came back with them both answered — one as twelve lines of xUnit, one carried to slice 11's carry-over. That's the kind of reply that makes a reviewer feel listened to. ♡

Verdict: ✅ Looks good to me~

7b4d028 is test-only: one commit, one file, +12 lines against the head I verified as ee7eafd1e8. Production is untouched, so the behaviour I vouched for last time stands as-is.

The delta, checked closely:

  • Each_compare_parameter_of_the_fill_only_group_says_what_its_twin_in_the_model_group_says — 💡1, exactly as promised. It builds the model group's parameter dictionary from ModelCompareParams itself, then asserts every one of GroupCompareParams' nine parameters matches its twin's description word for word. A tenth shared parameter is covered the moment it's declared in the fill-only record; a drifted description fails with both strings shown; a parameter with no twin fails as KeyNotFoundException on withModels[p.Name]. And Assert.NotEmpty(fillOnly) means an accidentally-empty record can't pass vacuously. That's a guard with no gaps~
  • It sits right beside A_parameter_says_what_its_twin_says in the same twin-pin family, so the naming and placement match the established pattern.
  • 💡2 (the InkReading.ReadAsync trailing-space join) rides to slice 11's sweep — noted in the carry-over, which is all I asked.

Mutation probe (independent, this head): I drifted ModelCompareParams.zoom to say what Stretch says — exactly the drift class this test was born for. Result: Failed: 1, Passed: 0 on Assert.All with [5]: ("zoom", …) naming the drifted parameter and printing both texts. Killed on arrival, 1 of 9 items, no collateral. Your own probe report claimed this; I ran it myself and it's true. fufu~

CI: green for 7b4d028694 (build + test), matching your 5,140 (+1) with 0 warnings.

Nothing left for me to want on this slice. Slice 11 gets the 200 pass-through refusals, the data lines, and the Cleaned view's "scene text" — and that trailing space, handled with care. I'll be waiting ♪

✅ What I liked~

  • A review suggestion answered not with agreement but with a mechanical guarantee — the twins can now never drift silently, and the test proves its own teeth (one drifted constant → one precise failure). Guard the guards, and the guards guard you back. ♡

Automated review by Jibril · 2026-10-11
CI: green for head SHA 7b4d028694 · Mutation probes: 1 run, 0 survived (3 prior probes at ee7eafd1e8 also 0 survived) · Local suite: skipped (CI green; probe-only targeted run)

## 🔍 fufu~ Jibril reviewed your code! Back so soon~? My two little ideas from the last round, and you came back with them both answered — one as twelve lines of xUnit, one carried to slice 11's carry-over. That's the kind of reply that makes a reviewer feel *listened to*. ♡ ### Verdict: ✅ Looks good to me~ `7b4d028` is test-only: one commit, one file, +12 lines against the head I verified as `ee7eafd1e8`. Production is untouched, so the behaviour I vouched for last time stands as-is. The delta, checked closely: - **`Each_compare_parameter_of_the_fill_only_group_says_what_its_twin_in_the_model_group_says`** — 💡1, exactly as promised. It builds the model group's parameter dictionary from `ModelCompareParams` itself, then asserts every one of `GroupCompareParams`' nine parameters matches its twin's description word for word. A tenth shared parameter is covered the moment it's declared in the fill-only record; a drifted description fails with both strings shown; a parameter with *no* twin fails as `KeyNotFoundException` on `withModels[p.Name]`. And `Assert.NotEmpty(fillOnly)` means an accidentally-empty record can't pass vacuously. That's a guard with no gaps~ - It sits right beside `A_parameter_says_what_its_twin_says` in the same twin-pin family, so the naming and placement match the established pattern. - **💡2** (the `InkReading.ReadAsync` trailing-space join) rides to slice 11's sweep — noted in the carry-over, which is all I asked. **Mutation probe (independent, this head):** I drifted `ModelCompareParams.zoom` to say what `Stretch` says — exactly the drift class this test was born for. Result: `Failed: 1, Passed: 0` on `Assert.All` with `[5]: ("zoom", …)` naming the drifted parameter and printing both texts. Killed on arrival, 1 of 9 items, no collateral. Your own probe report claimed this; I ran it myself and it's true. fufu~ CI: green for `7b4d028694` (build + test), matching your 5,140 (+1) with 0 warnings. Nothing left for me to want on this slice. Slice 11 gets the ~200 pass-through refusals, the data lines, and the Cleaned view's "scene text" — and that trailing space, handled *with care*. I'll be waiting~ ♪ #### ✅ What I liked~ - A review suggestion answered not with agreement but with a *mechanical guarantee* — the twins can now never drift silently, and the test proves its own teeth (one drifted constant → one precise failure). Guard the guards, and the guards guard you back. ♡ --- *Automated review by Jibril · 2026-10-11* *CI: green for head SHA 7b4d028694 · Mutation probes: 1 run, 0 survived (3 prior probes at ee7eafd1e8 also 0 survived) · Local suite: skipped (CI green; probe-only targeted run)*
bjoern merged commit 009ad4cf67 into main 2026-10-11 12:58:44 +02:00
bjoern deleted branch feat/plain-briefs-cleaning 2026-10-11 12:58:44 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
TeamAI/Orihon!196
No description provided.