fix(report): harden essay titles and semantic row headers - #997
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (8)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change hardens title validation in three essay HTML renderers and adds semantic row headers to calibration and validation-evidence tables. Regression tests cover hostile string subclasses and generated HTML semantics. Documentation and changelog entries describe both updates. ChangesTitle trust boundary
Essay table row headers
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This is a localized change to essay-report title handling and table accessibility semantics; no actionable merge-blocking risk remains after normal checks and review. Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Normal non-force branch reconciliation. Preserve exact-built-in title admission and semantic row-header markup plus both focused regression/evidence sets.
|
@opencode-agent @cwl-noema-review Please independently review exact current head |
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head017b22f1a5a5603e2207e7a2861fdae1f1476ae8. -
Head SHA:
017b22f1a5a5603e2207e7a2861fdae1f1476ae8 -
Workflow run: 32213307681
-
Workflow attempt: 1
Coverage evidence
Coverage evidence job did not run or did not publish coverage evidence.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Docs (3 files)"]
S1 --> I1["operator or user guidance"]
I1 --> R1["Review risk: Docs (3 files)"]
R1 --> V1["docs review"]
Evidence --> S2["Changed file (3 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (3 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Test (2 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (2 files)"]
R3 --> V3["targeted test run"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage evidence job did not run or did not publish coverage evidence. Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Docs (3 files)"]
S1 --> I1["operator or user guidance"]
I1 --> R1["Review risk: Docs (3 files)"]
R1 --> V1["docs review"]
Evidence --> S2["Changed file (3 files)"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Changed file (3 files)"]
R2 --> V2["required checks"]
Evidence --> S3["Test (2 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (2 files)"]
R3 --> V3["targeted test run"]
|
|
@opencode-agent review Fresh re-review request: ContextualWisdomLab/.github#1136 has merged, fixing the central Generated by Claude Code |
|
@opencode-agent Please re-review unchanged current exact head |
|
@opencode-agent Please re-review unchanged exact head |
|
@opencode-agent review Re-dispatch unchanged exact head |
|
@opencode-agent review Fresh exact-head re-review requested for |
|
Reviewed exact HEAD |
|
Current-head formal review refresh request for |
|
Current HEAD 111805c was validated in an exact detached worktree after building the native extension: 25 focused essay-report tests passed. Ruff, interrogate (production sources 100%), compile/diff checks were already clean. Hosted required checks remain pending; normal protected auto-merge remains armed. |
|
Fresh exact-head review request for current 111805c. The prior CHANGES_REQUESTED is bound to predecessor 017b22f and pre-repair coverage infrastructure. Current exact-head local native validation passes 25 focused essay-report tests; re-acquire same-head coverage, Noema, and OpenCode evidence under protected main. No bypass or self-approval. @opencode-agent review @cwl-noema-review review |
Closes #980.
Supersedes closed/unmerged #995, #981, #1007, and adopts the compatible pointer-focus intent from closed/unmerged #1143 without its blanket
:focus { outline: none; }selectors.Current exact state
Evaluate only current head
47ec832f95e0ea0a31715212bd965325c28a4542against protectedmain@04d0bc21a2a20693bcf16108cd76d394fe844d23. Predecessor-head checks/reviews are historical only; fresh exact-head required evidence and qualifying independent approval are mandatory.Single landing unit
This branch combines compatible public essay-report trust, accessibility, and export-integrity boundaries after normal non-force reconciliation in #1010.
Callback-free title admission
All three public essay HTML renderers—score, validation evidence, and facets calibration—admit only an exact built-in
str(orNone) before.strip()and HTML escaping. Caller-definedstrsubclasses cannot execute overridden text callbacks. Existing blank-title validation and built-in escaping remain unchanged.Semantic table row headers
Facets-calibration and validation-evidence tables explicitly supply row-header semantics only at domain-selected call sites. Task/rater/respondent/category-step/iteration and validation-metric axes use
th scope="row"; the many-row score evidence relation intentionally does not infer a row header from position alone. Header/row width and row-header-index validation remain fail closed.Complete print/PDF evidence
The shared standalone-report stylesheet keeps screen tables and canonical JSON scrollable, while print media removes screen-only overflow clipping and the
32remJSON height cap so exact-value audit evidence remains visible when printed or exported to PDF.Modality-safe scroll-region focus
Pointer-acquired focus on essay-report table scroll regions and canonical JSON
<pre>blocks now suppresses the default outline only under:focus:not(:focus-visible). Keyboard focus retains the existing explicit high-contrast:focus-visibleindicator. Regressions explicitly reject blanket.table-scroll:focus, pre:focus { outline: none; }suppression.Latest pointer-focus lineage:
b01ba1ba90408242c365605f7b4b8cc6c61a1037;18b213520257a038accf4317a104c3cc0bfe06c5;47ec832f95e0ea0a31715212bd965325c28a4542.Ownership boundary
This changes validation, HTML semantics, focus presentation, and print/export presentation only. It does not alter scoring, facets-calibration estimation, validation statistics, likelihoods, optimizers, or any psychometric arithmetic; production numerical ownership remains Rust-first.
The prior OpenCode
CHANGES_REQUESTEDreview is anchored to predecessor head017b22f1a5a5603e2207e7a2861fdae1f1476ae8and is not reused as an exact-head code finding, but any still-effective formal approval requirement must be regenerated and satisfied on the current head. Current exact-head CI/security/static-analysis evidence is still regenerating.