Skip to content

Compat: clamp a contact cell at or above the rectangle width to 0.99x width - #152

Open
rjwalters wants to merge 4 commits into
mainfrom
feature/issue-145
Open

rjwalters wants to merge 4 commits into
mainfrom
feature/issue-145

Conversation

@rjwalters

@rjwalters rjwalters commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Under --fasthenry-compat, a contact decay_rect / seven-value contact rect cell at or above its axis's width is now clamped to 0.99 × width on that axis (COMPAT_CELL_CLAMP). Each clamped axis gets one line-numbered ParseWarning, on the clause's own continuation line and in source order (the (order, ParseWarning) mechanism).
  • Both axes clamp at >=. FastHenry's y-only > is deliberately not copied, so the decay ratio 1/(1 − r0) is never computed with r0 >= 1. A cell <= 0 is still an error in both modes, and native mode keeps its existing error.
  • Plumbing: DeckBuilder.compat → parse_plane_statement(…, compat, …) → PlaneStatement { compat, warnings }, set up the same way as Deck reader: support relx/rely/relz on ground planes (documented offset) #149 so the two PRs are easier to merge. Widths and cells are compared index-wise, in plane coordinates (Deck reader: contact cell sizes are applied along global x/y, but the public memo defines them in the plane's own p1->p2 coordinate system #118).
  • Docs: the contact rect / contact decay_rect rows in docs/fasthenry-compat.md and the module doc now describe the compat clamp.

Clean-room: written only from the issue spec and the public nonuniform ground-plane manual.

Test plan

  • compat_clamps_a_cell_at_or_above_the_width: covers both axes, a negative limit, cell == width (both axes), x-only and y-only clamps, and seven-value contact rect. Each case must give the same geometry as the deck with the 0.99×width cell written out, one warning per clamped axis, and the error in native mode. Also checks that a cell <= 0 is still an error under compat.
  • compat_clamp_warnings_keep_source_order: clamp warnings sort into place among the hole-outside warnings.
  • cargo fmt --check, cargo clippy --all-targets --workspace -- -D warnings, cargo test -p fasterhenry-cli

Closes #145

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Under --fasthenry-compat, a `contact decay_rect` / seven-value `contact
rect` cell >= the rectangle width on an axis is clamped to 0.99 x width
on that axis, with one line-numbered warning per clamped axis, in the
clause's source order. Both axes use >= (FastHenry's y-only `>` is not
reproduced), so the decay ratio never meets r0 = 1. A cell <= 0 stays an
error, and native mode keeps its existing error.

Closes #145

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@rjwalters rjwalters added the loom:review-requested PR ready for Judge to review. Applied by: Builder when opening PR. label Oct 5, 2026
@rjwalters

Copy link
Copy Markdown
Member Author

Judge verdict: approved (code). Merge waits on CI.

I checked each acceptance criterion in #145 against the diff:

  • Compat-only, per-axis clamp: contact_rect_values takes a compat flag that is threaded from ParseOptions::fasthenry_compat through DeckBuilder and PlaneStatement. A cell where cell > 0 && cell >= width is set to COMPAT_CELL_CLAMP (0.99) × width on that axis. Both axes use >=, and the y-equal case is tested.
  • One warning per clamped axis: warn_clamped_cells reports each clamped axis on the clause's own line, giving the original cell, the width and the clamped value.
  • No r0 >= 1 division: after the clamp, the existing 0 < cell < width check still runs, so r0 is at most 0.99 (ratio 100).
  • Cell <= 0 is still an error: the clamp is skipped for non-positive cells. Tested under compat for both decay_rect and rect.
  • Native mode unchanged: each clamp case is also parsed natively, and the test asserts the original error.
  • Source order: clamp warnings go into PlaneStatement.warnings as (clause_seq, ParseWarning). finish destructures that same list and sorts it stably by order. compat_clamp_warnings_keep_source_order covers warnings interleaved with hole point warnings.
  • Docs: the contact rect and contact decay_rect rows in docs/fasthenry-compat.md and the module doc are updated. The y-axis asymmetry is described as behaviour we choose not to reproduce.
  • Clean-room: the change is written from the issue's black-box spec and the public manual. No FastHenry source text appears.

CI: all checks were still pending when I reviewed (mergeStateStatus BLOCKED). I did not run cargo locally because disk space is tight. Do not merge until gh pr checks 152 is green and the merge state is CLEAN.

@rjwalters rjwalters added loom:pr PR approved by Judge, ready for Champion auto-merge. Applied by: Judge. and removed loom:review-requested PR ready for Judge to review. Applied by: Builder when opening PR. labels Oct 5, 2026
@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Verdict anchored to the current head — no marker had been recorded

This PR carries loom:pr, but no verdict-SHA marker was ever written for that verdict, so it was unverifiable: nothing could tell whether it still described the tree in front of it, and it would have survived a force-push undetected — the exact pre-#5686 hazard.

This comment records the head SHA as of now, 64dade72943aa14ad6ee2a4e97a89964b6e477f6. It is not a review and implies no judgment about this tree: the loom:pr label is unchanged. From here on the verdict is invalidatable — if the head moves off 64dade72943aa14ad6ee2a4e97a89964b6e477f6, the stale-verdict pass clears loom:pr and returns the PR to loom:review-requested.

Anchoring bounds future exposure; it cannot reconstruct which tree was actually reviewed. If the head already moved before this comment, treat the verdict with corresponding suspicion.


Automated by loom-daemon claim reconciliation (#6319)

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Landing order recorded — this PR overlaps other open work

Planned by the merge-sequencing pass (#9686): this PR lands AFTER #149, because it changes files #149 also changes. Order within overlapping work is oldest-first; independent PRs are unaffected.

While the loom:sequenced label is present, merge-pr.sh refuses to merge this PR (the #9378 gate). The label clears mechanically when #149 lands at the recorded head — or by re-evaluation if it closes or moves. This is a scheduling preference: it suppresses only redundant base-conflict repairs while #149 is in flight, never a genuine review finding.


Automated by loom-daemon claim reconciliation (#9686, plan seq-8c981698)

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Landing order recorded — this PR overlaps other open work

Planned by the merge-sequencing pass (#9686): this PR lands AFTER #149, because it changes files #149 also changes. Order within overlapping work is oldest-first; independent PRs are unaffected.

While the loom:sequenced label is present, merge-pr.sh refuses to merge this PR (the #9378 gate). The label clears mechanically when #149 lands at the recorded head — or by re-evaluation if it closes or moves. This is a scheduling preference: it suppresses only redundant base-conflict repairs while #149 is in flight, never a genuine review finding.


Automated by loom-daemon claim reconciliation (#9686, plan seq-1d039e6e)

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Landing order recorded — this PR overlaps other open work

Planned by the merge-sequencing pass (#9686): this PR lands AFTER #149, because it changes files #149 also changes. Order within overlapping work is oldest-first; independent PRs are unaffected.

While the loom:sequenced label is present, merge-pr.sh refuses to merge this PR (the #9378 gate). The label clears mechanically when #149 lands at the recorded head — or by re-evaluation if it closes or moves. This is a scheduling preference: it suppresses only redundant base-conflict repairs while #149 is in flight, never a genuine review finding.


Automated by loom-daemon claim reconciliation (#9686, plan seq-36cf2910)

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Landing order recorded — this PR overlaps other open work

Planned by the merge-sequencing pass (#9686): this PR lands AFTER #149, because it changes files #149 also changes. Order within overlapping work is oldest-first; independent PRs are unaffected.

While the loom:sequenced label is present, merge-pr.sh refuses to merge this PR (the #9378 gate). The label clears mechanically when #149 lands at the recorded head — or by re-evaluation if it closes or moves. This is a scheduling preference: it suppresses only redundant base-conflict repairs while #149 is in flight, never a genuine review finding.


Automated by loom-daemon claim reconciliation (#9686, plan seq-52da1383)

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion: Cannot Auto-Merge

Cannot auto-merge:

  • CI status (criterion 6): failing checks on head 64dade7: Clean-room check (no FastHenry-derived text), Dependency licenses & sources (cargo-deny), Rust (ubuntu-latest), Third-party license bundle (cargo-about). Several of these ran the full 15m02s before failing, which looks like a runner timeout or stall rather than a code failure, but that is not confirmed.

Next steps:

  • Re-run the failed jobs (or push a fix if the failure is real) so all required checks go green.
  • Champion re-evaluates on the next tick; the Judge approval is fresh for the current head and unaffected.

Keeping loom:pr label. Champion will retry on the next tick once the blocking condition clears.


Automated by Champion role

loom dashboard

@loom-fleet-dispatch loom-fleet-dispatch Bot added the loom:treating Doctor is fixing this bug or PR. Applied by: Doctor. Stale after LOOM_STALE_TREATING_MINUTES (60m). label Oct 5, 2026
Under --fasthenry-compat, a `contact decay_rect` / seven-value `contact
rect` cell >= the rectangle width on an axis is clamped to 0.99 x width
on that axis, with one line-numbered warning per clamped axis, in the
clause's source order. Both axes use >= (FastHenry's y-only `>` is not
reproduced), so the decay ratio never meets r0 = 1. A cell <= 0 stays an
error, and native mode keeps its existing error.

Closes #145

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@loom-fleet-dispatch loom-fleet-dispatch Bot removed the loom:treating Doctor is fixing this bug or PR. Applied by: Doctor. Stale after LOOM_STALE_TREATING_MINUTES (60m). label Oct 5, 2026
@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

🔧 Resolved merge conflicts with main branch (rebased onto origin/main).

Changes:

No behavioural change beyond the merge. Verified locally: cargo fmt --check clean, cargo test -p fasterhenry-cli all passing, version-check gate clean. loom:pr approval left intact.

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Stale review verdict cleared — head SHA moved

This PR's loom:pr verdict was rendered against 64dade72943aa14ad6ee2a4e97a89964b6e477f6, but the current head is 4933c10402fdec008f32e8ea1451903a6e01f3c6. A review verdict is a statement about a specific tree, so it does not survive a rebase, a force-push, or new commits.

  • Verdict cleared: loom:pr (recorded for 64dade72943aa14ad6ee2a4e97a89964b6e477f6)
  • Returned to the review queue: loom:review-requested (current head 4933c10402fdec008f32e8ea1451903a6e01f3c6)

Judge will re-evaluate the tree that is actually here now. No judgment about the new tree is implied either way — the old verdict simply no longer describes it.


Automated by verdict-staleness-guard.sh (#5686)

@loom-fleet-dispatch loom-fleet-dispatch Bot added loom:review-requested PR ready for Judge to review. Applied by: Builder when opening PR. loom:reviewing Judge is reviewing this PR. Applied by: Judge only. Stale after LOOM_STALE_REVIEWING_MINUTES (30m). and removed loom:pr PR approved by Judge, ready for Champion auto-merge. Applied by: Judge. labels Oct 5, 2026
@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

✅ Approved!

Reviewed the complete diff at 4933c10402fdec008f32e8ea1451903a6e01f3c6 against #145. No blocking findings. Inspection of contact_rect_values, warn_clamped_cells, and PlaneStatement::finish confirms the compat-only per-axis clamp, preserved native/nonpositive-cell errors, clause line numbers, and stable source-order warnings. The documentation describes the deliberate >= behavior on both axes. The body correctly closes #145.

Validation: local execution was attempted but cargo is not installed in this session; no local test success is claimed. Verified gh run view 37382091033 --job 112006344381 --log: cargo fmt --all --check, workspace clippy with -D warnings, and cargo test --workspace succeeded. The CLI suite reports 122 passed, 0 failed, including compat_clamps_a_cell_at_or_above_the_width and compat_clamp_warnings_keep_source_order. Those tests cover the automatable test-plan cases; the requested CLI test run is covered by the workspace CI run. TDD declaration is absent (advisory only).

gh pr checks 152 shows all verification checks passing (the optional codesmith check is skipped); the workflow reports success at the reviewed SHA. Live merge state is CLEAN. check-review-feedback.sh reports CLEAR, with zero formal reviews and zero inline comments. Final live label/head check confirms the review claim and unchanged SHA.

loom dashboard

@loom-fleet-dispatch loom-fleet-dispatch Bot added loom:pr PR approved by Judge, ready for Champion auto-merge. Applied by: Judge. and removed loom:reviewing Judge is reviewing this PR. Applied by: Judge only. Stale after LOOM_STALE_REVIEWING_MINUTES (30m). loom:review-requested PR ready for Judge to review. Applied by: Builder when opening PR. labels Oct 5, 2026
Resolve inp.rs conflicts with #148 (compat copper default) and #149
(relx/rely/relz): the contact-cell clamp reuses main's single compat
flag (DeckBuilder.compat -> parse_plane_statement -> PlaneStatement.compat),
and the clamped contact rect / decay_rect centres are shifted by the
relx/rely/relz offset. Add a CHANGELOG entry for #145.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@rjwalters rjwalters added loom:review-requested PR ready for Judge to review. Applied by: Builder when opening PR. and removed loom:pr PR approved by Judge, ready for Champion auto-merge. Applied by: Judge. labels Oct 5, 2026
@rjwalters

Copy link
Copy Markdown
Member Author

Doctor: merged origin/main (#148, #149) and resolved the inp.rs conflicts. The clamp now uses main's single compat flag (no second field); clamped contact rect/contact decay_rect centres also get the relx/rely/relz shift. Docs merged cleanly; added a CHANGELOG entry for #145. cargo fmt, clippy -D warnings, and cargo test -p fasterhenry-cli all pass. Ready for re-review.

@loom-fleet-dispatch loom-fleet-dispatch Bot added the loom:reviewing Judge is reviewing this PR. Applied by: Judge only. Stale after LOOM_STALE_REVIEWING_MINUTES (30m). label Oct 5, 2026
@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Judge review: no blocking code findings; approval gate unresolved.

Reviewed head dfdf389214f459db853b637cfbaba06c070e7aa3 against #145. Static inspection of contact_rect_values, both callers, warn_clamped_cells, and PlaneFrame::decay_contact found the requested compat-only 0.99×width clamp on both axes before ratio calculation, preservation of native/nonpositive-cell rejection, and clause-line/source-order warning handling. The two added regression tests compare generated geometry with explicit clamped inputs and exercise boundary/native behavior and warning ordering. The three-file diff includes the compatibility documentation and changelog. No TDD declaration is present; advisory only.

Test scoping: fasterhenry-cli is the only changed crate. Attempted cargo fmt --check, cargo clippy --all-targets --workspace -- -D warnings, and cargo test -p fasterhenry-cli with a private target directory; all three could not execute because cargo is absent in this environment. The two named regression tests and manual CLI diagnostics were not executed locally. git diff --check origin/main...HEAD passed against the locally available base; refreshing origin/main over SSH failed host-key verification.

Live forge evidence:

  • gh pr checks 152 and the current-head check-runs endpoint report seven successful checks; optional [code]smith is skipped. Run 37384290746's job-step records confirm fmt, clippy, build, and test succeeded on Linux, Linux ARM, and macOS. These are CI results, not a local rerun.
  • check-review-feedback.sh --number 152 --head-sha dfdf389214f459db853b637cfbaba06c070e7aa3 returned CLEAR: zero formal reviews and zero inline comments/threads.
  • The final live PR read reports the same head, merge state CLEAN, and my reviewing claim intact.
  • loom-daemon forge wait-checks 152 --timeout 20 returned LOOM-CHECKS-TIMEOUT ... (required-contexts-unknown): classic branch-protection lookup failed with Resource not accessible by integration. Visible green jobs therefore do not establish that Loom's required-check gate passed.

No approval or changes-requested verdict is being applied. Releasing loom:reviewing and retaining loom:review-requested. Restore the integration's branch-protection read access, then rerun the gate/review. No code change is requested for this infrastructure limitation.

@loom-fleet-dispatch loom-fleet-dispatch Bot added loom:reviewing Judge is reviewing this PR. Applied by: Judge only. Stale after LOOM_STALE_REVIEWING_MINUTES (30m). and removed loom:reviewing Judge is reviewing this PR. Applied by: Judge only. Stale after LOOM_STALE_REVIEWING_MINUTES (30m). labels Oct 7, 2026
@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

✅ Approved!

Reviewed the complete three-file diff against issue #145 at dfdf389214f459db853b637cfbaba06c070e7aa3. In contact_rect_values, compat-only normalization precedes strict cell validation and decay-ratio construction; both axes use >=, with nonpositive cells still rejected. Both seven-value callers preserve clause line and source ordering through warn_clamped_cells. The diff includes explicit-cell geometry comparisons, equality and single-axis cases, native rejection, nonpositive-cell rejection, warning-order regression coverage, and matching documentation/changelog updates. No blocking findings.

Test Execution

  • Attempted the PR test plan with a private CARGO_TARGET_DIR: local execution stopped at cargo fmt --check with cargo: command not found (exit 127). Neither clippy nor the CLI tests ran locally; the temporary target directory was removed. CLI diagnostic observation was not executed for the same environment limitation.
  • gh pr checks 152: seven verification checks pass, including Rust on Ubuntu, ARM Ubuntu, and macOS; optional codesmith skips. gh api repos/{owner}/{repo}/actions/jobs/112013632263 reports fmt, clippy, and test steps all success; the workflow executes workspace formatting, clippy, and tests. Runtime validation therefore relies on current-head CI, not an independent local rerun.
  • check-review-feedback.sh --number 152 --head-sha dfdf389214f459db853b637cfbaba06c070e7aa3: CLEAR, zero formal reviews and zero inline comments.
  • Live pre-verdict read: merge state CLEAN, review claim present, no competing verdict, head unchanged.
  • No TDD: claim is present; this is advisory only.

loom dashboard

@loom-fleet-dispatch loom-fleet-dispatch Bot added loom:pr PR approved by Judge, ready for Champion auto-merge. Applied by: Judge. and removed loom:reviewing Judge is reviewing this PR. Applied by: Judge only. Stale after LOOM_STALE_REVIEWING_MINUTES (30m). loom:review-requested PR ready for Judge to review. Applied by: Builder when opening PR. labels Oct 7, 2026
@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion Auto-Merge

Fresh Judge approval covers head dfdf389. Full diff inspection finds contact_rect_values normalization and warn_clamped_cells are confined to contact parsing. The specific Judge review and current-head CI cover the regression behavior. All four risk axes pass: enumerated changes, feature-local blast radius, specific review evidence, and full revertability with no external state effects. No prior merge-risk hold is present.

PASS: No critical files modified (or only version-only carve-out files).

Live mergeability is MERGEABLE, real activity is within 24 hours, and all executing CI checks pass.

Proceeding through the guarded merge script.

Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion: Merge Failed

The guarded merge exited 1. The required-check freshness guard could not read classic branch protection: Resource not accessible by integration. The installed daemon also lacks merge-pr chain-lock. No guard was bypassed; loom:pr remains for a later retry.

Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion Auto-Merge

Current-head Judge approval is fresh; no prior merge-risk hold. Read the full diff: contact_rect_values clamps positive oversized cells under compat; both callers emit ordered warnings; native and nonpositive errors persist. Changes are confined to deck parsing or plane bars plus tests/docs, the specific Judge review is backed by current-head CI, and reverting the commit undoes the change. All four risk axes pass.

PASS: No critical files modified (fresh paginated list inspected). MERGEABLE; last real activity 2h ago; all seven CI checks pass. Proceeding through the guarded merge script.

Automated by Champion role

@loom-fleet-dispatch

loom-fleet-dispatch Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Champion: Merge Failed

Guarded merge exited 1. The required-check freshness lookup returned Resource not accessible by integration; the guard failed closed. Nothing merged and loom:pr remains. Branch-protection read access must be restored before this merge can proceed.

Automated by Champion role

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion Auto-Merge

Fresh Judge approval covers head dfdf3892; no prior merge-risk hold. Full diff inspection finds the compat clamp helper and its axis-specific warnings in the plane contact parser, backed by focused boundary regression tests. The change is confined to plane contact parsing, the Judge review cites the exact behavior and current-head CI evidence, no external state is written, and a revert fully restores prior behavior. All four risk axes pass.

PASS: No critical files modified (fresh paginated file list inspected). Live mergeability is MERGEABLE, real activity is within 24 hours, and all required CI checks pass.

Proceeding through the guarded merge script.


Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion Auto-Merge

Fresh approval covers the current head; no prior risk or critical-file hold. Full diff read: contact_rect_values clamps compat-only cell widths before ratio construction; warn_clamped_cells preserves clause lines and source order, with focused equality, geometry and native-error regressions. The specific Judge review cites code and test evidence. All four risk axes pass: enumerated feature-local changes, specific verification, and full revertability without external state effects.

PASS: No critical files modified (or only version-only carve-out files). Fresh paginated loop passed; MERGEABLE, real activity within 24 hours, and all executing CI checks pass. Proceeding through the guarded merge script.

Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion: Merge Failed

Guarded merge exited 1: required-check freshness lookup failed with Resource not accessible by integration. The installed daemon also lacks merge-pr chain-lock. Nothing merged; loom:pr remains. Restore branch-protection read access and a compatible daemon before retrying.

Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion: Merge Deferred

Current-head approval is fresh, but the required-check freshness guard exited 2: branch-protection lookup returned Resource not accessible by integration. This pass cannot establish merge eligibility. Nothing merged and labels remain unchanged. Restore integration access to the branch-protection lookup before retrying.

Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion Auto-Merge

Current-head approval is fresh; no sticky hold. Full diff read: contact_rect_values normalizes compat cells before validation and warn_clamped_cells preserves ordering; focused equality, axis and rejection regressions. All four risk axes pass: enumerated feature-local changes, specific Judge review backed by current-head CI, full revertability and no external state effects.

PASS: No critical files modified (fresh paginated file loop). MERGEABLE; last real activity 8h ago; all executing CI checks pass.

Proceeding through the guarded merge script.

Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion Auto-Merge

Fresh Judge approval covers the current head; no prior merge-risk hold. The complete diff is confined to contact-cell compatibility normalization, its focused regression tests, and docs. The Judge traced both call sites, per-axis clamping, warning order, and preserved error paths; current-head CI is green. All four risk axes pass: enumerated feature-local changes, specific verification, no external state effects, and full revertability.

PASS: Fresh paginated file inspection found no critical files. Live mergeability is MERGEABLE, real activity is within 24 hours, and all executing CI checks pass.

Proceeding through the guarded merge script.


Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion: Merge Failed

The guarded merge exited 1. Its required-check freshness guard could not read classic branch protection (Resource not accessible by integration), so it failed closed. Nothing merged and loom:pr remains. Restore branch-protection read access before retrying.


Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion: Merge Blocked

The live required branch-protection check lookup returns HTTP 403: Resource not accessible by integration. Guarded merging cannot proceed with the active credential. Current approval matches the head and CI is green; merge-risk evaluation is deferred because this environment blocker prevents merging. Keeping loom:pr for a later pass. Restore branch-protection read access before retrying.

Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion Auto-Merge

Pass of 2026-10-08: Judge approval FRESH for head dfdf389 (staleness guard rc 0, no hold marker). Fresh paginated file list is CHANGELOG.md, docs/fasthenry-compat.md, fasterhenry-cli/src/inp.rs (no critical files). MERGEABLE; last real activity within 24h; all executing CI checks pass. Merge-risk: compat-only contact-cell clamp in the deck parser plus tests/docs, specific Judge review, fully revertable. First in the recorded landing order (#152 → #153 → #161 → #162/#164 → #151). Retrying the guarded merge once.


Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion Auto-Merge

Pass of 2026-10-08 08:3x UTC: Judge approval FRESH for head dfdf389 (staleness guard clean, no hold marker). Fresh paginated file list (CHANGELOG.md, docs/fasthenry-compat.md, fasterhenry-cli/src/inp.rs) has no critical files; MERGEABLE; active within 24h; all executing CI checks pass. Merge-risk: feature-local parser clamp plus tests/docs, revertable via git revert -m 1 <merge-sha>.


Automated by Champion role

loom dashboard

@loom-fleet-dispatch

Copy link
Copy Markdown
Contributor

Champion: PR Is Stale

Last real activity was 2026-10-07T07:01:07Z (28 hours ago), outside the 24-hour recency window. Champion comments do not reset this clock. Routed out of the auto-merge queue for a rebase/refresh.

Rebase onto the latest main, resolve any drift, and re-request Judge review.


Automated by Champion role

loom dashboard

@loom-fleet-dispatch loom-fleet-dispatch Bot added loom:changes-requested PR requires changes before re-review (Judge requested modifications). Applied by: Judge. loom:review-requested PR ready for Judge to review. Applied by: Builder when opening PR. and removed loom:pr PR approved by Judge, ready for Champion auto-merge. Applied by: Judge. loom:changes-requested PR requires changes before re-review (Judge requested modifications). Applied by: Judge. labels Oct 8, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

loom:review-requested PR ready for Judge to review. Applied by: Builder when opening PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Compat: clamp a contact cell at or above the rectangle width to 0.99x width

1 participant