Commit Graph
15 Commits
Author SHA1 Message Date
thomas b716d3d94d feat(setup): add the standard created/updated autodate columns
Both collections are created programmatically, so PocketBase's default
created/updated autodate fields were absent and the admin UI showed no
creation/modification dates. Declared explicitly on documents (re-added
each start like the other fixed columns, protected from the config
cleanup) and on document_events at creation. The authoritative history
remains document_events.
2026-11-04 22:37:32 +01:00
thomas 7b25b7b144 feat(ui): US-22 becomes a side-effect-free draft correction; add US-24 S3 deletion
US-22: the PocketBase UI edits one field at a time with no preview of
the final name, so a field edit now persists the values with no template
evaluation, no re-filing and no status change; the corrected event carries
the field diff alone. The full correction (all fields, dry-run, re-filing,
validation) moves to the custom dashboard (US-3x).
US-24: deleting a documents record deletes the S3 object at file_key first;
the cascade delete removes the history. Spec, hooks, E2E updated together.
2026-11-04 22:08:31 +01:00
thomas 6961256538 refactor(config): rename the period helper to frPeriod
The helper renders French period labels (Janvier 2026, T2 2026, S1 2026),
so it carries the fr prefix like frDate. Config example, arch.md and
user-stories.md updated. Configs calling period(...) must switch to
frPeriod(...).
2026-11-04 22:00:36 +01:00
thomas f8734f79ca feat(docker): update Dockerfile to include git and adjust file copying structure
fix(docs): update Garage image version in README and architecture documentation

fix(e2e): change default Garage image version in e2e tests and improve directory handling

fix(s3): skip adding inbox directory markers in S3 listing

fix(main): set HTTP address argument correctly for the application
2026-11-04 21:56:44 +01:00
thomas 4baf2f3368 feat(events): store before/after as diffs, not full snapshots
AppendEvent now reduces the before/after snapshots to the changed keys:
identical values on both sides are omitted, a key on one side only is an
addition or a deletion. The imported, corrected and validated payloads all
follow the same rule (an import is a diff from nothing, a validation keeps
carrying the status alone). arch.md section 4 updated accordingly.
2026-11-03 23:05:34 +01:00
thomas 5d09e7a780 feat(config): add frDate helper for French natural-language dates
Go date layouts only know English month names, so date(value, layout)
cannot parse "le 19 janvier 2026". frDate(text) extracts and parses such
dates (day optional, abbreviated months, accents optional) into a native
date; no match is a rule error routing the document to pending/.

Documented in arch.md §5, covered by unit tests.
2026-11-03 22:56:47 +01:00
thomas 09d0c9b99b fix(pipeline): skip rule evaluation when PDF extraction fails (US-13)
An unreadable PDF was still passed to cfg.Evaluate with nil pages, producing
a cascade of spurious errors (index out of range on pages[0], missing
mandatory fields) in the imported event. Route straight to pending/ with the
extraction failure as the single error.
2026-11-03 22:53:16 +01:00
thomas 02f7fd99bb Corrections after first run 2026-11-03 22:36:27 +01:00
thomas 6f94674fc9 archivist: migrate to PocketBase v0.41.1 (module ganigeorgiev.com/pocketbase/pocketbase); dbx moved to ganigeorgiev.com/pocketbase/dbx; go 1.27 and golang:1.27-alpine builder 2026-11-03 21:01:00 +01:00
thomas 233c153072 archivist: single-file E2E regression gate (Garage + image under test); superuser-only poll route; ARCHIVIST_S3_REGION 2026-11-02 12:28:58 +01:00
thomas 67c337eb14 archivist: runtime logs through PocketBase logger (Dashboard > Logs); stderr kept for pre-bootstrap fatals 2026-11-02 11:27:00 +01:00
thomas 61586a670a archivist: clarify Remove() comment re optional versioning 2026-11-02 11:13:02 +01:00
thomas 3bba6a82db archivist: versioning check becomes a startup warning in code 2026-11-02 11:12:31 +01:00
thomas 24b22c5815 archivist: render template from stored fields when recovering interrupted filings 2026-11-01 23:02:52 +01:00
thomas a9b4fa5eca archivist: initial Go implementation of the written user stories (US-01..US-23) 2026-11-01 23:02:24 +01:00