v0.3.12
Fix round for community-reported issues #130-#133.
- ⏰ One-off reminders work again (#130): the systemd-run timer crashed loading a TypeScript module under stock Node; the security gate is now canonical plain JS (
scripts/lib/security-gate.mjs) with a thin TS re-export for the agent — one implementation, both runtimes. - 📈 Vault health is scored over schema-managed cards only (#131, #132): raw daily transcripts no longer decay the score; an exact rollup parent (day→week→month→year) that isn't due yet counts as an expected future link, becoming honestly broken the day after its scheduled creation; audio embeds (.ogg/.opus/.m4a/.wav) aren't broken wiki-links; doctor passes its timezone-aware day via --as-of.
- 🗂️ Card structure invariants (#133): write_card takes explicit ADD / UPDATE / SUPERSEDE / NOOP — one
## Log, one## Related, displaced facts move to an append-only## History; everything fail-closed, fenced code untouched; the nightly enforce migrates legacy dated «Обновление» stacks and reports ambiguous cards as compile candidates instead of guessing.
Full details in CHANGELOG.md. Update: iva update or the /update button in Telegram.