Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions WORK_LOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,70 @@ Chronological record of completed work in this repository, maintained by the Gui

<!-- Maintained automatically by the Guide triage agent. Manual edits are fine but may be overwritten. -->

### 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)
Expand Down
52 changes: 26 additions & 26 deletions WORK_PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,47 @@ Prioritized roadmap of upcoming work, maintained by the Guide role.

<!-- Maintained automatically by the Guide triage agent. Manual edits are fine but may be overwritten. -->

## 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) |
Loading