Skip to content

Record the Path disclosure ruling, and a script to reclaim the disk - #601

Open
maximsan wants to merge 4 commits into
mainfrom
docs/path-disclosure-ruling
Open

Record the Path disclosure ruling, and a script to reclaim the disk#601
maximsan wants to merge 4 commits into
mainfrom
docs/path-disclosure-ruling

Conversation

@maximsan

@maximsan maximsan commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Why

Two records, both about work that was invisible until it bit.

#599 shipped a deliberate departure from prototype/disclosure.jsx: every
module a learner can reach carries a caret and opens and shuts, where the
design pins the active one open with no caret. That ruling lived only in a
merged PR body. ADR-0024 records it.

Separately, the machine ran out of disk mid-branch — 163 MB free of 460 GB,
enough that commands could not write their own output. An iOS Flutter build
never reclaims what it takes, and nothing in the repo said so or offered a way
out. tool/clean_build_caches.sh does both.

Watch for

  • The design doc is where the ADR earns its keep.
    07-components.md still states the
    prototype's formula as the spec, and that paragraph is what someone reads
    while porting the screen — docs/adr/ is not. The warning goes there, next
    to the sentence it contradicts.
  • path_density.dart gains one clause, citing the ADR the way three files
    nearby cite ADR-0016. No behaviour changes, hence no-changelog: One disclosure draws every expandable section #599
    already logged what a learner sees.
  • The script deletes only what it can name. safe_rm is an allow-list of
    four paths, not a "stay inside this tree" test — the looser version I wrote
    first would have permitted ~/Library/Developer/Xcode/Archives, which the
    header promises it never touches. Source, Archives and ~/.pub-cache are
    refused; simulators are pruned with delete unavailable, never erase.
  • It reports and exits unless given --apply, and --worktrees is a
    second opt-in because wiping a live worktree's build/ forces a rebuild on
    whoever is using it.
  • The number is 0024 by the README's rule — the next one on origin/main.
    A concurrent session is drafting its own 0024 for the pricing arms; whichever
    lands second renumbers, as docs/adr/README.md says.

Checks

adr_numbering_test passes: 00010024, no gaps, heading matches filename.
Both new links resolve. The script was run from inside a worktree, where it
correctly resolved the main checkout and listed all six build/ directories;
its path guard was exercised against eight paths, allowing four and refusing
lib/, Documents, Archives, .pub-cache and /.

ADR-0024, cited from the density that encodes it, plus a warning on the design doc paragraph that still states the prototype's rule — that paragraph is what a reconciliation reads, and without it the divergence reads as a bug.
@maximsan maximsan added the no-changelog Skips the CI changelog check label Sep 12, 2026
Cuts the ported-then-corrected sequence from the Context, and a claim I had not checked: ADR-0016 already rules three Path surfaces away from the prototype, so this is not the first departure on the screen.
Reports by default and deletes only with --apply, behind an allow-list of the four paths it may take. Finds the main checkout through --git-common-dir, so it lists every worktree's build/ when run from inside one.
@maximsan maximsan changed the title Record the ruling that every reachable module opens and shuts Record the Path disclosure ruling, and a script to reclaim the disk Sep 13, 2026
The table's single 'on arrival' column let the active module's 'open' read as 'always open', which is the opposite of the ruling. Capability and initial state are now two columns.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog Skips the CI changelog check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant