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
1 change: 1 addition & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ increment that most needs a picture to check against
| h35 | The question tool (Ola, 2026-10-27: "Like, a question tool, so I don't have to repeat how you should pose questions all the time :)"): `tools/questions.py` is the one place questions to Ola are formed, checked and listed: `add` refuses, with a plain reason, a question without a default, with two decisions, leaning on another question, carrying internal labels, relative paths or unexplained abbreviations, longer than two lines, or asked before; a second yes/no question waits until the first is answered; `taken` records a default taken; `list` prints the numbered block to copy to Ola; `answer N` stores his words verbatim | designed (about 185 counted lines, no governed file) | `docs/increments/h35-question-tool.md` |
| h36 | Cut the rule text every agent loads by half (an outside review Ola adopted on 2026-10-27): each rule file keeps only its commands; the main session's dispatch rules, publishing and away-mode rules become three skills loaded only when needed; `docs/PRINCIPLES.md` folds into five lines; a new `tools/rebuild_core.py` replaces the extension-rebuild recipe. Ola's yes to the wider scope on 2026-10-28. Counted rule text 9,261 to 4,630 words; what an agent loads before its first act falls from 3,900-5,000 words to 1,550-1,780. One PR, about 37 counted lines; full proposed texts in `docs/increments/h36-proposed/`, rebased onto the rules merged on 2026-10-28 | designed (round 3, for design review) | `docs/increments/h36-rule-cut.md` |
| h37 | Governance guard follow-ups left open by h33: zsh's overwrite and append redirects (`>!`, `>>|`, `&>!` and their kin) count as writes, so they ask before writing a rule file; paths into the harness record folder are judged after resolving `//`, `/./`, `..`, letter case, globs, links and expansions; rule files are matched regardless of letter case (the main session's default; Ola's call open); a script that builds the path itself stays open (only Claude Code's sandbox would close it) | built (red `4a9ecd11`, green `9649346b`, 48 counted lines); code review round 1 approved | `docs/increments/h37-guard-follow-ups.md` |
| h40 | Detached runs: a heavy model run goes out as a job in its own session, writing artifacts to disk, and the persona re-attaches by reading them (`tools/detach.py`), so the run survives the agent | **merged (#423, `3c571a8e`, 2026-11-02)**: red `e499476d`, green `dc8b2af5`, `@reviewer` approved `020cb607`; 219 net counted lines | `docs/increments/h40-detached-runs.md` |
| pq | The 15-minute performance check (Ola, 2026-10-07: "a process to measure performance using maximum 15 minutes"): `tools/bench_quick.py run`, four fixed cases (the 1 m tile and quarter, Numedalslågen, and Lagan, which replaced Ljungan in `@perf`'s reading) judged per phase against a stored master baseline per power state, a band of the larger of 5 % and the baseline's own spread, a hard stop at 900 s inside the tool; a phase at 40 % or more of a run, or a call at 25 % or more in a profile, is a hotspot raised with Ola and ruled in `docs/benchmarks/quick/hotspots.toml`; a "why is it slow" question gets one profile first, by hand; the extensive acceptance runs before refine- or mesh-touching pushes, monthly on master and on Ola's ask. Deferred to a later PR: the timing lock and a `profile` subcommand. One PR | merged as #217 (`64481aae`): red `fa3e03ef` + `166f2528`, green `b3439629` + `db1ce78e`, 242 net production lines against about 220; two code review rounds; rule text proposed in the record, not applied. Follow-up PR (Ola, 2026-10-08: yes): record the shapely, GEOS, pyproj and PROJ versions in `bench.py`'s machine record, so an upgrade gives NO BASELINE; designed, about 9 lines; built: red `f8bd29bc`, green `05514d4c`, 9 net lines; review round 1 asked for this status fix; next round 2, then the push | `docs/increments/perf-quick-check.md` |
| 33 | A vertical tolerance that varies with distance to named lines (Ola, 2026-10-08: "It's feature adaptive refinement, like 1m vtol resolution close to the railway from Oslo to Bergen, with 20m vtol resolution from 3 km radially away"): `--tolerance-near FILE N` and `--tolerance-ramp START END` beside `--tolerance F`; each triangle is held to the linear ramp at its own distance to the lines, so every DEM node meets the ramp at its own distance; the lines read and simplified in Python, the distance in C++ per scanned triangle, local per tile; without the flags every byte is today's. Demonstration: the Bergen Line from Bane NOR's open network data on DTM10, a 5 km corridor (about 1.4 million triangles estimated against 21.7 million at 1 m everywhere), first on Geilo to Ål | **merged (#220)** from branch `worktree-vtol-field`: 469 counted lines in one PR against the design's estimate of 310-425 (the command-line flags and building the field in `cli.py`, 105 against 40-60, are nearly all of the difference); eight questions for Ola with defaults, plus one default taken while Ola was away (a line coordinate that is not a finite number is refused, naming the file; reversible); design review round 3 approved; red step `6c64b120`; mutation record complete; code review rounds 1 to 4 recorded: round 1's five fixes and round 2's added test all in, round 3 approved, its suggestion (a GeoPackage with a polygon in reach and its lines out of reach is refused as a mixed file) built in `0b1235a7`, and round 4's two prose fixes made; `@perf` accepted (`21853bf1`) | `docs/increments/33-feature-tolerance.md` |
| 34 | A tighter vertical tolerance where the ground is steep (Ola, 2026-10-08: "if the slope of a surface is steeper than a certain angle, we want a finer refinement"; "vtol means finer"): `--tolerance-slope N START END` beside `--tolerance F`, the tolerance F up to START degrees of slope and N from END, linear between; every DEM node is held to the tolerance at its own slope (Horn's slope at the DEM's own spacing, one byte per node, computed in C++), so a coarse triangle cannot hide a steep node; composes with increment 33's lines (the tighter of the two); without the flag every byte is today's. Demonstration: Romsdalen, DTM10 tile `6901_3`, estimated 1.4 to 3.5 million triangles against 0.6 million at 10 m and 5.9 million at 2 m | **merged (#226, 2026-10-10)** (branch `worktree-slope-tol`): designed at 376-533 counted lines, seven questions for Ola with defaults, design review rounds 1 to 4 asked for changes, answered, round 5 approved; red `3ce92a7e`, green `952bd1ee`, 512 counted lines (513 with code review round 1's suggestion S1, `d06a0a8c`), one PR; scaffolding removed `f68a9440`; mutation round `7d661ae9`, all nine planted faults (M1-M9) caught by the tests; code review rounds 1 and 2 asked for changes, answered; code review round 3 approved; `@perf` accepted (`2c88ddbe`: 1.039 times, slope phase 0.107 s, default meshes unchanged); next: the push on Ola's yes | `docs/increments/34-slope-tolerance.md` |
Expand Down
6 changes: 6 additions & 0 deletions docs/increments/h40-detached-runs.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# h40 — Detached runs: heavy model runs survive the agent

Status: **merged** (public PR #423, merge commit `3c571a8e`, 2026-11-02): full
lane, red `e499476d`, green `dc8b2af5`, `@reviewer` approved head `020cb607`;
219 net counted lines by `tools/count_loc.py` over the merge (203 at green; the
PR text's 260 matches no commit in the PR). No C++, mesh or refine code, so no
`@perf` run.

A heavy perf or land-surface-model (lsm) run goes out as a **detached job** —
a process in its own session, writing artifacts to disk, that lives
independently of the agent that launched it. The persona launches it and later
Expand Down
Loading