b8532f587d
feat: version ledger migrations and hardened JSON portability
...
Quality gates / quality (pull_request) Successful in 1m42s
Implements #35 .
- importLedger migrates prior schema versions (v0 bare-array legacy
exports and the v1 envelope) and fails safely on future versions,
malformed JSON, wrong-product envelopes, and oversized files with a
new 2 MiB MAX_IMPORT_BYTES guard applied before parsing.
- exportLedger normalizes entries through sanitizeEntry so confirmed
values and bounded provenance round-trip while smuggled secrets and
unknown fields never enter the portable file.
- Entries may carry a whitelisted provenance origin ('user' or
'ai-suggestion'); mergeVisualSuggestion records 'ai-suggestion' only
when a suggestion is actually applied, keeping nonvisual fields
user-owned.
- App import now merges into the existing ledger instead of replacing
it, so a failed or partial import can never silently drop
user-owned records.
- Service-worker shell cache bumped to v6 (per base-path namespace)
so installed PWAs receive the migration code; old v5 caches are
purged on activation.
- New tests/ledger-portability.acceptance.mjs browser gate covers
export round trip, merge import, safe-failure surfacing, root vs
/timmy-staging storage isolation, and Delete Everything for both
namespaces; wired into package.json test:portability and CI quality.yml.
Deterministic medical safety unchanged: urgent-flag detection, red-flag
copy, and chat escalation paths are untouched; all fixtures synthetic.
2026-08-22 20:32:57 +00:00
47294a98aa
Merge pull request 'Make staging runtime configuration compatible with strict CSP' ( #59 ) from timmy/58-strict-csp-runtime-config into main
Quality gates / quality (push) Successful in 1m56s
2026-08-21 15:04:43 +00:00
877b8a01f3
fix: make staging compatible with strict CSP
Quality gates / quality (pull_request) Successful in 1m37s
2026-08-21 15:01:05 +00:00
067afaed4c
Merge pull request 'Hardened atomic private-staging deployment tooling' ( #56 ) from timmy/55-staging-deployment-tooling into main
Quality gates / quality (push) Successful in 1m41s
2026-08-21 14:54:11 +00:00
f8f01c4b2e
feat: add hardened atomic staging deployment
Quality gates / quality (pull_request) Successful in 1m28s
2026-08-21 14:49:28 +00:00
fc763fb758
Merge pull request 'Private subpage staging foundation' ( #54 ) from timmy/53-private-subpage-staging into main
Quality gates / quality (push) Successful in 2m7s
2026-08-21 14:16:15 +00:00
7e11154302
feat: add private subpage staging slice
Quality gates / quality (pull_request) Successful in 1m43s
2026-08-21 14:12:17 +00:00
11d1b364ab
fix: gate bootstrap syntax in release build
Quality gates / quality (push) Successful in 1m45s
2026-08-21 12:56:48 +00:00
8e3c2f8889
Merge pull request #52 from timmy/10-reproducible-smolvlm-bootstrap
...
Quality gates / quality (push) Has been cancelled
Merge pull request #52 : Package pinned self-hosted SmolVLM2 bootstrap
2026-08-21 12:55:18 +00:00
982fab273c
feat: package pinned self-host vision bootstrap
Quality gates / quality (pull_request) Successful in 1m30s
2026-08-21 08:15:32 +00:00
ca31e6d38b
Merge pull request 'Hotfix: recognize past-tense vomiting in deterministic chat safety' ( #51 ) from timmy/48-vomiting-phrase-hotfix into main
Quality gates / quality (push) Successful in 1m26s
2026-08-20 17:17:33 +00:00
0f3104ebde
fix: recognize past-tense vomiting in chat safety
Quality gates / quality (pull_request) Successful in 1m21s
2026-08-20 17:14:20 +00:00
cc1fc6ee36
Merge pull request 'Hotfix: enforce deterministic urgent-symptom override at the server boundary' ( #50 ) from timmy/48-server-safety-override into main
Quality gates / quality (push) Successful in 1m24s
2026-08-20 16:48:02 +00:00
05b4bafd96
fix: enforce urgent chat override server-side
Quality gates / quality (pull_request) Successful in 1m25s
2026-08-20 16:41:35 +00:00
09f9528434
Merge pull request 'Sleek Timmy mobile shell and secure Hermes Agent chat' ( #49 ) from timmy/47-sleek-hermes-agent into main
Quality gates / quality (push) Successful in 1m32s
2026-08-20 16:25:47 +00:00
a50afa6722
feat: simplify Timmy and add secure Hermes chat
Quality gates / quality (pull_request) Successful in 1m24s
2026-08-20 16:21:00 +00:00
930f156590
Merge pull request 'Document product boundary and release authority' ( #46 ) from timmy/9-product-boundary-decisions into main
Quality gates / quality (push) Successful in 1m26s
2026-08-20 13:15:22 +00:00
3c51308a9e
docs: fix product boundary and release authority
Quality gates / quality (pull_request) Successful in 1m14s
2026-08-20 08:32:16 +00:00
8ab1e85bd1
Merge pull request #45 : enforce reproducible quality gates
Quality gates / quality (push) Successful in 1m18s
2026-08-19 12:06:38 +00:00
47eec47a31
ci: install pinned image test dependency
Quality gates / quality (pull_request) Successful in 1m12s
2026-08-19 08:14:43 +00:00
29ba8594b8
ci: enforce reproducible quality gates
Quality gates / quality (pull_request) Failing after 1m56s
2026-08-19 08:09:38 +00:00
535834c060
feat: require verified feature demo video in every release
2026-08-19 03:36:04 +00:00
ce84ea577c
test: isolate photo acceptance from service workers
2026-08-19 03:02:33 +00:00
3899eac34f
fix: start isolated server for release acceptance gates
2026-08-19 03:01:28 +00:00
074f52fddc
build: add gated reproducible review releases
2026-08-19 03:00:54 +00:00
0ecf1d1205
docs: add Gitea roadmap and epic map
2026-08-19 02:00:40 +00:00
58906f11d0
feat: ship photo-first Timmy prototype and sovereign vision spike
2026-08-19 01:54:29 +00:00