docs: update folder worktree state and follow-up queue

This commit is contained in:
Lucas Winther committed 2026-09-30 00:57:50 +02:00
1 parent 228d48d978
commit fc14341f1e
2 files changed
+33 -12

No files matched your search

+3 -3
View File
@@ -228,8 +228,8 @@ Not oversights. Each was decided against, and reopening one needs a reason.
amounts are all **allowed**. Adding validation is a regression.
→ [`AGENTS.md`](../AGENTS.md) §3
- The income field and the split editor's fixed-amount fields **do not parse a
currency**; only the purchase total does. → [`TODO.md`](TODO.md) §3
currency**; only the purchase total does. → [`TODO.md`](TODO.md) §5
- **No currency picker.** Adding a currency means typing code, name, symbol and
decimals by hand. → [`TODO.md`](TODO.md) §3
decimals by hand. → [`TODO.md`](TODO.md) §5
- **Symbol collisions resolve to the first currency defined with that symbol.**
Tested and documented rather than solved. → [`TODO.md`](TODO.md) §3
Tested and documented rather than solved. → [`TODO.md`](TODO.md) §5
+30 -9
View File
@@ -8,15 +8,19 @@ decisions behind it are in `docs/specs/` — one spec per sub-project,
each recording the alternatives that were rejected. Rules that outlived their
task moved to `AGENTS.md`.
**Current state:** merged to `main`. 661 tests passing,
`bunx tsc --noEmit` clean, `bun run build` succeeds on both the live-fetch and
offline paths.
**Current feature worktree state:** budget folders and recurring cost placement
are implemented.
707 tests passing across 54 files. `bunx tsc --noEmit` is clean;
`bun run --bun build` succeeds using the committed seed rates when live-fetch
is unavailable. The runtime override bypasses a broken local Bun shim.
**Schema is at version 7.** v1 -> v2 made allocation rules a dated series;
**Schema is at version 8.** v1 -> v2 made allocation rules a dated series;
v2 -> v3 moved currencies into the dataset; v3 -> v4 drops a stored rate-service
URL that can no longer work; v4 -> v5 adds sterling to an existing dataset;
v5 -> v6 collapses per-currency decimals into one dataset-wide setting; v6 -> v7
adds `Dataset.recurring`. All six are behaviour-preserving by construction —
adds `Dataset.recurring`; v7 -> v8 adds budget folders and assigns existing
posts and recurring bills a deterministic mixed sibling order under Unfiled.
All seven are behaviour-preserving by construction —
not one changes a stored figure — and are tested as such.
A migration applies **on load, in memory**; it is written back on the next
@@ -27,7 +31,24 @@ IndexedDB instead of the app.
---
## 1. Visual redesign, sub-project 3 — Year, Summary, Post detail
## 1. Folder rename blur during an in-flight save
A folder name draft can remain unsaved if the owner changes it while a rename
save is in flight and then blurs the field before that save finishes. Preserve
the newer draft and ensure the blur requests a subsequent save after the pending
write completes. Cover the delayed-write sequence with a UI interaction test,
including the final persisted name and any surfaced write error.
## 2. Recurring split editor interaction coverage
`RecurringSplitEditor` has coverage for destination selection and dedicated post
creation, but its rendered split mode and value controls lack a focused
interaction test. Exercise the real controls to switch percentage/fixed mode
and edit a split value, then assert the resulting splits and remainder behavior.
Keep this scoped to the editor's user interaction; domain split calculations
already have their own tests.
## 3. Visual redesign, sub-project 3 — Year, Summary, Post detail
The owner's brief for the whole redesign: *"right now it looks a bit boring,
simple and ugly. We want sleek, modern, and nice to use."* On scoping: both
@@ -67,7 +88,7 @@ than re-decide** (spec: `2026-09-02-month-view-design.md`):
phone. `formatMoney` is still right wherever an amount can be in some other
currency — every purchase row, for one.
## 2. Visual redesign, sub-project 4 — dialogs and fast entry
## 4. Visual redesign, sub-project 4 — dialogs and fast entry
Untouched. Native `<select>` elements are still browser-default, and
`up` / `down` / `archive` in Settings are bare text buttons. Covers the purchase
@@ -77,7 +98,7 @@ There is already a spec for fast-entry *behaviour* —
`2026-09-02-fast-entry-refinements-design.md`. Read it before restyling, so the
visual work does not fight it.
## 3. Currency work deliberately left undone
## 5. Currency work deliberately left undone
All three were decided against at the time, not forgotten. Reopen only with a
reason.
@@ -93,7 +114,7 @@ reason.
Fine for one "$" currency; if the owner adds two, typing the code
disambiguates and nothing warns them. Tested, documented, not solved.
## 4. Still needs a human
## 6. Still needs a human
`scripts/screenshot.ts` drives headless Chrome, so this list is much shorter
than it was. Already seen and confirmed working: the carry meter (including red