design: recent projects on the start screen (Tim t998u.1)
@@ -468,3 +468,8 @@ Decision (superseded and reverted per Tim t991u, see below): automatic per-body
468
468
- What still matters after completion goes into the `.ppda`, not into `raw files/`. `.ppda` format 4 adds `export`: the full render contract (formerly `render.json`), `passes` and `png_sha256` (SHA-256 per loose PNG, keyed by its `raw files/…` path). The export_set reader rebuilds its render/complete view from that, and checks the `.ppda` SHA-256 and every loose PNG checksum as before. Formats 2–3 and older result folders (loose maps and manifests at the root) are still read.
469
469
- `depth_clamped` statistics are progress-only now; they are not persisted.
470
470
- Crash safety: a build is complete when it has `complete.json`, or when it has no `render.json` and does have a `.ppda` (already stripped). `recover` verifies such an unlocked build, strips any remaining bookkeeping (idempotent) and promotes it. Resume refuses completed builds as before. Quarantined `.corrupt-aNNN-K` files are still kept, never deleted; that is the only exception to the consumer-only layout.
471
472
## Decision 2026-11-07 (Tim t998u.1): recent projects on the start screen
473
- Below **Project laden** / **Nieuw project**, the start screen lists the last 5 opened or created projects, newest first. Clicking one opens it, the same as loading it.
474
- The list is stored per user as `recent.json` in the user config directory: `$XDG_CONFIG_HOME/paperdoll-renderer/` (default `~/.config/paperdoll-renderer/`), or `%APPDATA%\paperdoll-renderer\` on Windows. `PAPERDOLL_CONFIG_DIR` overrides the location. It holds absolute `character.ppd` paths, with duplicates removed. It is written atomically and only after a successful open or create.
475
- Projects whose `character.ppd` no longer exists stay in the list, greyed out and not clickable, with the note "niet gevonden". They drop off as newer projects are added. An unreadable or damaged list is treated as empty and is never fatal.
@@ -468,3 +468,8 @@ Decision (superseded and reverted per Tim t991u, see below): automatic per-body468
- What still matters after completion goes into the `.ppda`, not into `raw files/`. `.ppda` format 4 adds `export`: the full render contract (formerly `render.json`), `passes` and `png_sha256` (SHA-256 per loose PNG, keyed by its `raw files/…` path). The export_set reader rebuilds its render/complete view from that, and checks the `.ppda` SHA-256 and every loose PNG checksum as before. Formats 2–3 and older result folders (loose maps and manifests at the root) are still read.468
- What still matters after completion goes into the `.ppda`, not into `raw files/`. `.ppda` format 4 adds `export`: the full render contract (formerly `render.json`), `passes` and `png_sha256` (SHA-256 per loose PNG, keyed by its `raw files/…` path). The export_set reader rebuilds its render/complete view from that, and checks the `.ppda` SHA-256 and every loose PNG checksum as before. Formats 2–3 and older result folders (loose maps and manifests at the root) are still read.469
- `depth_clamped` statistics are progress-only now; they are not persisted.469
- `depth_clamped` statistics are progress-only now; they are not persisted.470
- Crash safety: a build is complete when it has `complete.json`, or when it has no `render.json` and does have a `.ppda` (already stripped). `recover` verifies such an unlocked build, strips any remaining bookkeeping (idempotent) and promotes it. Resume refuses completed builds as before. Quarantined `.corrupt-aNNN-K` files are still kept, never deleted; that is the only exception to the consumer-only layout.470
- Crash safety: a build is complete when it has `complete.json`, or when it has no `render.json` and does have a `.ppda` (already stripped). `recover` verifies such an unlocked build, strips any remaining bookkeeping (idempotent) and promotes it. Resume refuses completed builds as before. Quarantined `.corrupt-aNNN-K` files are still kept, never deleted; that is the only exception to the consumer-only layout.471
472
## Decision 2026-11-07 (Tim t998u.1): recent projects on the start screen473
- Below **Project laden** / **Nieuw project**, the start screen lists the last 5 opened or created projects, newest first. Clicking one opens it, the same as loading it.474
- The list is stored per user as `recent.json` in the user config directory: `$XDG_CONFIG_HOME/paperdoll-renderer/` (default `~/.config/paperdoll-renderer/`), or `%APPDATA%\paperdoll-renderer\` on Windows. `PAPERDOLL_CONFIG_DIR` overrides the location. It holds absolute `character.ppd` paths, with duplicates removed. It is written atomically and only after a successful open or create.475
- Projects whose `character.ppd` no longer exists stay in the list, greyed out and not clickable, with the note "niet gevonden". They drop off as newer projects are added. An unreadable or damaged list is treated as empty and is never fatal.