release/v1.0.0 #9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release/v1.0.0"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Exercise the engine through its injection points (floor / migrations / baseline) with synthetic registries: ordered round-trip replay, fresh-vs-migrated schema equivalence, data preservation, atomic rollback of a failing migration (earlier steps stay committed), below-floor and too-new refusals (the latter proven write-free), two-connection concurrent migration without double-application, foreign_key_check enforcement, and pragma restoration. Also pins the production schema: a frozen copy of the v40 baseline ('frozen at release 1.0 — never edit') replayed through the real registry must equal a fresh database, which forbids editing BASELINE_STATEMENTS without shipping a migration. Signed-off-by: Younes Benmoussa <younes.benmoussa@pm.me>- po/en.po (msgen: msgstr == msgid) + 'en' in LINGUAS: pins the source language explicitly instead of relying on the gettext fallback; msgfmt --check-format runs on it at build time like fr. - _i18n._pick_localedir: accept a localedir shipping any language's catalog instead of probing hardcoded 'fr'. - hash_page: three user-facing strings escaped gettext ('{first} (+{n} more)' — msgid already existed, 'never run', 'unknown'); fr translations added. - job_queue_page: state labels move to the call-time gettext pattern (module-level dict froze them at import; same convention as integrity_history_page). - POT + fr.po regenerated (line-number churn); fr stays 0 fuzzy / 0 untranslated. Signed-off-by: Younes Benmoussa <younes.benmoussa@pm.me>New locale-independent kinds alongside hash/integrity/no-changes: baseline {n}, imported {n}, empty, capture-failed, verify-failed, compare-failed and kernel-gate, each rendered through existing msgids (one new: 'Requires Linux 5.6 or newer'). is_kernel_gate_verdict recognises the encoded form and keeps the legacy substring sentinel for pre-encoding rows. Unknown kinds and legacy prose still pass through unchanged. Nothing emits the new kinds yet. Signed-off-by: Younes Benmoussa <younes.benmoussa@pm.me>test_e2e_writer_reopens_after_reset called wipe_all_data() without the tmp_xdg fixture: its database was isolated (tmp_db) but manifest_paths.archive_dirs() resolved from the live environment, so every full-suite run emptied the developer's real ~/.local/share/bitcrafts-vigil/{hash,duplicate,integrity} while the real DB kept referencing the deleted manifests — surfacing later as 'cannot read manifest' verification failures in the app. The test is skipif'd without the real bchash, so CI never saw it. Defense in depth: an autouse fixture now redirects all XDG vars (and XDG_RUNTIME_DIR) to a per-test temp dir for EVERY test, the leaking test also takes tmp_xdg explicitly, and a sentinel module asserts archive_dirs()/database_path() never resolve into the real home. Verified: a marker file in the real archive dir survives the full suite. Signed-off-by: Younes Benmoussa <younes.benmoussa@pm.me>The status label ellipsizes and the job queue was the only surface showing a failure's cause — a long tool diagnostic ('bcintegrity: cannot read manifest /long/path…') was unreadable. Failed rows now carry the complete error_message as the label tooltip (cleared on row recycling). Persisting failure details for the history pages needs a verifies.error_message column — first real 1.x schema migration, deliberately not taken here. Signed-off-by: Younes Benmoussa <younes.benmoussa@pm.me>