From e4fc519d0d4937540a474aec00f908b3d28616f6 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 7 Oct 2026 16:36:04 +0000 Subject: [PATCH 1/3] docs: update WORK_LOG and WORK_PLAN Automated document maintenance by Guide triage agent. Co-Authored-By: Claude Sonnet 5.5 --- WORK_LOG.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ WORK_PLAN.md | 52 +++++++++++++++++++++--------------------- 2 files changed, 90 insertions(+), 26 deletions(-) diff --git a/WORK_LOG.md b/WORK_LOG.md index 71214a7e..7c3c3694 100644 --- a/WORK_LOG.md +++ b/WORK_LOG.md @@ -4,6 +4,70 @@ Chronological record of completed work in this repository, maintained by the Gui +### 2026-10-06 + +- **PR #163**: Compat: approximate diagonal contact trace by padded bounding box (#157) + +### 2026-10-05 + +- **PR #149**: Deck reader: support relx/rely/relz on ground planes (documented offset) +- **PR #147**: tools: FastHenry head-to-head script + example-corpus results (#74) +- **PR #148**: Compat: default an unspecified conductivity to copper (5.8e7 S/m), with a warning +- **PR #150**: Deck reader: accept whitespace around '=' on N, E and .default lines +- **PR #140**: docs: note that merges into main are CI-gated (#35) +- **PR #139**: fix: restore main build — tag contact touch warnings with clause order +- **PR #138**: Return parse warnings in source-clause order +- **PR #137**: fix: contacts touching the plane edge no longer fail assembly (#134) +- **PR #135**: feat(inp): warn when a hole or contact rect lies wholly off its plane + +### 2026-09-30 + +- **PR #89**: chore: update Repo Skills 0.11.17 → 0.14.1 +- **PR #133**: chore: ignore the CLI's default Zc.mat output + +### 2026-09-29 + +- **PR #132**: fix(deck): accept 'file=NONE' and reject a named hierarchy file correctly +- **PR #129**: fix(deck): read a contact clause's x/y lengths in the plane's own coordinate system +- **PR #130**: feat(deck): read 'contact rect' in its documented centre/widths/cell form too +- **PR #121**: feat(deck): 'contact trace' along x or y as its documented five contact lines +- **PR #128**: fix(plane): drop a whole-axis background band before merging bands +- **PR #127**: ci(deny): gate dependency sources on crates.io only, no git dependencies +- **PR #126**: feat(deck): 'contact initial_grid' / 'initial_mesh_grid' with the documented row/column convention +- **PR #125**: fix(deck): a one-axis-met contact point/line leaves that axis's mesh alone + +### 2026-09-28 + +- **PR #123**: fix: error instead of panic on a deck with no conductor +- **PR #120**: feat(deck): 'contact circle' is not a documented shape — permanent rejection with the bounding-square alternative +- **PR #119**: refactor: split parse_plane_statement into per-clause helpers +- **PR #117**: Deck reader: named contact areas ('contact equiv_rect', 'contact connection') +- **PR #115**: feat(inp): contact point / contact line refinement clauses +- **PR #111**: refactor(inp): split the deck parser into a DeckBuilder with per-directive methods +- **PR #107**: decide: 'hole user1'…'user7' are permanently rejected (issue #99) +- **PR #104**: feat(plane): non-rectangular hole model (hole point / hole circle) +- **PR #103**: feat(ci): ship a third-party license bundle for the Apache-2.0-only dependencies +- **PR #102**: feat(inp): accept the FastHenry 'contact decay_rect' ground-plane clause +- **PR #93**: ci: gate the dependency tree on a cargo-deny license allowlist +- **PR #96**: feat(cli): drop-in FastHenry invocation mode (fasterhenry deck.inp) +- **PR #92**: feat(api): mark growing public enums #[non_exhaustive] before 0.2.0 +- **PR #91**: feat(inp): accept rho= on the corner-point G plane statement +- **PR #90**: feat(inp): opt-in FastHenry compat mode with an implicit first-line title +- **PR #85**: Deck reader: rw/rh filament ratios and wx/wy/wz width direction +- **PR #86**: docs: refresh WORK_PLAN/WORK_LOG; add tools/ and docs/ READMEs +- **PR #84**: Deck reader: audit against public FastHenry format, commit compatibility table +- **PR #82**: Deck reader: accept rho= and the full documented .units list +- **PR #81**: feat(inp): accept FastHenry's ground-plane (G) statement syntax + +### 2026-09-27 + +- **PR #78**: docs: record thin margin on the slot-differential PyPEEC bounds +- **PR #79**: chore(gitignore): ignore .claude/skills/repo/logs/ so guard-hook logs don't block fleet resync +- **PR #77**: release: 0.1.1 +- **PR #56**: feat(scaling): pFFT/dense size threshold and the benchmark behind it (#44) +- **PR #68**: ci: tag-triggered crates.io release via Trusted Publishing +- **PR #66**: ci: restrict Actions cache saves to main (rust-cache save-if, PyPEEC venv split) + ### 2026-09-18 - **Project bootstrapped** (from klayout-tools#1886 / #2083: FastHenry is MIT-noncommercial and unpackaged; PyPEEC chosen as the validation oracle; the modernization is a clean-room Rust engine) diff --git a/WORK_PLAN.md b/WORK_PLAN.md index 0850e595..a1b250e5 100644 --- a/WORK_PLAN.md +++ b/WORK_PLAN.md @@ -4,47 +4,47 @@ Prioritized roadmap of upcoming work, maintained by the Guide role. -## Urgent +Released: **0.1.0** and **0.1.1** on crates.io (2026-09-27). Current +milestone: **0.2.0 — drop-in FastHenry replacement** (epic #76). The deck +reader, drop-in CLI mode, compat mode and the `cargo-deny` license gate have +merged; remaining work is the compatibility long tail below. -*No urgent issues.* +## Operator Attention: Merge-Risk Holds -## Ready +- **#160**: chore(tooling): update Loom 0.19.740 and Repo Skills 0.19.8 (conflicting; touches merge/permission tooling) +- **#159**: docs: repo hygiene pass 2026-10-05 (benchmark figures need human review) -Released: **0.1.0** and **0.1.1** on crates.io (2026-09-27). Current -milestone: **0.2.0 — drop-in FastHenry replacement** (epic #76). #69 -(FastHenry `G` ground-plane syntax) is merged. Remaining, in priority -order: +## Ready (`loom:issue`, PR open) + +Each has an implementing PR in review: -- **#73**: drop-in CLI mode (`fasterhenry deck.inp` writes `Zc.mat`) -- **#75**: `cargo-deny` license allowlist gate in CI -- **#80**: plane hole/contact shapes the plane model cannot represent yet -- **#83** (triage): compatibility mode for third-party decks (implicit - first-line title) +- **#156**: Deck reader: case-insensitive node names and `.equiv` pseudonyms (PR #164) +- **#155**: Deck reader: `segwid1`/`segwid2` meshed planes (PR #162) +- **#154**: Deck reader: fractional `.freq` ndec, compat sweep edge cases (PR #161) +- **#145**: Compat: clamp a contact cell at or above the rectangle width (PR #152) +- **#144**: Compat: `.units` spellings, missing and repeated `.units` (PR #153) +- **#143**: Compat: `file=NONE` plane with no initial grid is a single root cell (PR #151) ## In Progress -- **#70** — `rho=` and the full `.units` list (PR #82: changes requested, merge conflict) -- **#71** — `rw`/`rh` filament ratios, `wx`/`wy`/`wz` width direction (PR #85: in review) -- **#72** — format audit + compatibility table (PR #84: changes requested, merge conflict) +*None claimed (`loom:building`).* -## Proposed +## Blocked / Operator-owned -*No proposed issues.* +- **#74**: real-deck corpus comparison against FastHenry (operator-run; head-to-head tooling merged in PR #147) +- **#48**: README fleet burndown embed (blocked on 2AMLogic/2am#1088) +- **#38**: adopt Renovate dependency security policy (open PR) +- **#16**: Champion merge-risk hold digest (tracking issue, not a work item) ## Epics -- **#76**: 0.2.0 — drop-in FastHenry replacement. Done: #69. In progress: - #70, #71, #72. Next: #73, #75. Operator-run: #74 (real-deck corpus, - blocked by #69–#72), #35 (required status checks). -- **#6**: M0 → release. All four phases have shipped (dense core, - physics completeness, pFFT acceleration, crates.io release #9); open - only as an operator-owned tracking epic. +- **#76**: 0.2.0 — drop-in FastHenry replacement. Children #69–#73, #75 are done; compatibility follow-ups above are in review. ## Backlog Balance | Tier | Count | |------|-------| -| Tier 1 (goal-advancing) | 6 (#6, #70, #71, #72, #73, #76) | -| Tier 2 (goal-supporting) | 2 (#74, #75) | +| Tier 1 (goal-advancing) | 6 (#143–#145, #154–#156) | +| Tier 2 (goal-supporting) | 1 (#74) | | Tier 3 (maintenance) | 0 | -| Unlabelled / triage | 4 (#16, #48 blocked; #80, #83) | +| Unlabelled / triage | 2 (#16, #48, both blocked) | From 95a2632059be62acec7b66abd4435284beca83be Mon Sep 17 00:00:00 2001 From: "loom-fleet-dispatch[bot]" <313063438+loom-fleet-dispatch[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 17:35:06 +0000 Subject: [PATCH 2/3] chore: re-date required checks for PR #165 (#8248 guard, automated by #8508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit intentionally changes NOTHING in the tree — it exists only to give every required check a fresh started_at, because the #8248 required-check-freshness guard blocked this merge on evidence that predates the base branch's current tip, and the merge token lacks actions:write to re-run the stale check directly. Stale-Check: Clean-room check (no FastHenry-derived text) Stale-Clause: time rule (#8248 started_at fallback) Coupled-Base-Path: none Coupled-PR-Path: none From 8239dc59583faf55a59b524615fefe3007075434 Mon Sep 17 00:00:00 2001 From: "loom-fleet-dispatch[bot]" <313063438+loom-fleet-dispatch[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 19:43:41 +0000 Subject: [PATCH 3/3] chore: re-date required checks for PR #165 (#8248 guard, automated by #8508) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit intentionally changes NOTHING in the tree — it exists only to give every required check a fresh started_at, because the #8248 required-check-freshness guard blocked this merge on evidence that predates the base branch's current tip, and the merge token lacks actions:write to re-run the stale check directly. Stale-Check: Clean-room check (no FastHenry-derived text) Stale-Clause: this required check has no entry in the input-scope table and no declaration in `.loom/stale-check-inputs.json`, so which files it reads is unknown Coupled-Base-Path: .agents/skills/loom-doctor/SKILL.md Coupled-PR-Path: none