docs: update folder worktree state and follow-up queue
This commit is contained in:
1 parent
228d48d978
commit
fc14341f1e
2 files changed
+33
-12
No files matched your search
+3
-3
@@ -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
@@ -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
|
||||
|
||||
Reference in new issue
Block a user