docs: unique filenames in changelog, help page, README and llms.txt
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BNhLunz586g6DeYMa7Qsd1
This commit is contained in:
5 files changed
+91
-1
No files matched your search
@@ -2,6 +2,42 @@
|
||||
|
||||
All notable changes to Klarbild are documented here. Newest first.
|
||||
|
||||
## 2026-08-21 — Unique, chronologically sortable filenames
|
||||
|
||||
### Fixed
|
||||
- **Pictures overwrote each other at Picdrop.** Two badges of the same person in the
|
||||
same format on the same day both came out as `2026-07-23_lea_the-frame.png`, so the
|
||||
second upload silently replaced the first. Reported from real use — Till lost images
|
||||
this way. The name now carries the time down to the second plus a short tag derived
|
||||
from the item id:
|
||||
|
||||
2026-08-20_143207_lea-badge_the-frame_a3f9.jpg
|
||||
|
||||
Two pictures can no longer collide: the tag comes from the item id, which is unique.
|
||||
A belt-and-braces loop appends `-2`, `-3` … if a name is somehow still taken —
|
||||
deliberately a code loop rather than a UNIQUE constraint, because a rejected write
|
||||
would fail an already-paid AI job at the very last step.
|
||||
|
||||
### Added
|
||||
- **Backfill for the existing library** (Admin → Dateinamen). Preview first — it reports
|
||||
how many names are currently duplicated — then apply. It re-stamps from `created_at`
|
||||
and the item id while keeping the motif and format already chosen, so it is idempotent:
|
||||
a second run changes nothing. Stored files are untouched; they live under their id,
|
||||
not their name.
|
||||
- **Re-deliver everything** under the new name, for copies already sitting at Picdrop.
|
||||
The old files stay where they are — deleting a customer's files automatically is the
|
||||
wrong reflex; that stays a manual decision.
|
||||
|
||||
### Changed
|
||||
- Timestamps use **Europe/Berlin** (override with `KLARBILD_TZ`) rather than UTC. A
|
||||
picture taken at 00:30 should not be dated to the previous day.
|
||||
- Naming moved into `src/lib/naming.ts` — dependency-free, like `printlayout.ts`, so the
|
||||
rules are testable and identical in every path (jobs, Telegram, MCP, backfill).
|
||||
The generator strips its own stamp when a result is fed back in as a source, so
|
||||
re-processing cannot accumulate timestamps.
|
||||
- 17 new tests (56 total), including the reported bug as an explicit regression test and
|
||||
a check that lexicographic sorting equals chronological sorting across a DST boundary.
|
||||
|
||||
## 2026-08-20 — Oversize sheets, duplicate images, free labelling, new layout
|
||||
|
||||
### Added
|
||||
|
||||
Reference in new issue
Block a user