Alexander Whitestone
6e03492147
feat: CLI command to view crisis metrics summary ( #136 )
...
crisis/metrics.py:
CrisisMetrics class — aggregate crisis detection metrics
Privacy-first: stores only counts, never user content
Daily JSONL files in ~/.the-door/metrics/
get_summary(days) → AggregateMetrics
get_report(days) → human-readable report
get_json(days) → JSON export
CLI: python3 -m crisis.metrics --summary/--json
crisis/__init__.py:
Export CrisisMetrics, AggregateMetrics
Makefile:
make metrics → summary report
make metrics-json → JSON export
tests/test_crisis_metrics.py: 6 tests
record_session, summary, report, JSON export
2026-04-17 01:26:44 -04:00
07c582aa08
Merge pull request 'fix: crisis overlay initial focus to enabled Call 988 link ( #69 )' ( #126 ) from burn/69-1776264183 into main
...
Merge PR #126 : fix: crisis overlay initial focus to enabled Call 988 link (#69 )
2026-04-17 01:46:56 +00:00
5f95dc1e39
Merge pull request '[P3] Service worker: cache crisis resources for offline ( #41 )' ( #122 ) from burn/41-1776264184 into main
...
Merge PR #122 : [P3] Service worker: cache crisis resources for offline (#41 )
2026-04-17 01:46:55 +00:00
07b3f67845
fix: crisis overlay initial focus to enabled Call 988 link ( #69 )
Sanity Checks / sanity-test (pull_request) Successful in 9s
Smoke Test / smoke (pull_request) Successful in 15s
2026-04-15 15:09:36 +00:00
543cb1d40f
test: add offline self-containment and retry button tests ( #41 )
Sanity Checks / sanity-test (pull_request) Successful in 4s
Smoke Test / smoke (pull_request) Successful in 11s
2026-04-15 14:58:44 +00:00
3cfd01815a
feat: session-level crisis tracking and escalation ( closes #35 )
Sanity Checks / sanity-test (pull_request) Successful in 17s
Smoke Test / smoke (pull_request) Successful in 23s
2026-04-15 11:49:52 +00:00
48f48c7f26
feat: cache offline crisis resources (refs #41 ) ( #74 )
...
Smoke Test / smoke (push) Successful in 7s
Sanity Checks / sanity-test (pull_request) Successful in 17s
Smoke Test / smoke (pull_request) Successful in 19s
Merge PR #74 (squash)
2026-04-14 22:09:59 +00:00
da31288525
fix: deprecate dying_detection and consolidate crisis detection ( #40 ) ( #76 )
...
Smoke Test / smoke (push) Successful in 4s
Merge PR #76 (squash)
2026-04-14 22:08:29 +00:00
8efc858cd7
fix: add keyboard focus trap to crisis overlay ( #80 )
...
Smoke Test / smoke (push) Has been cancelled
Merge PR #80 (squash)
2026-04-14 22:08:28 +00:00
611c1c8456
fix(a11y): Safety plan modal keyboard focus trap ( #65 ) ( #81 )
...
Smoke Test / smoke (push) Has been cancelled
Merge PR #81 (squash)
2026-04-14 22:08:24 +00:00
e71bca1744
fix: de-duplicate crisis_detector.py and crisis/detect.py ( closes #39 ) ( #44 )
...
Smoke Test / smoke (push) Has been cancelled
Squash merge: de-duplicate crisis detector (closes #39 )
Co-authored-by: Alexander Whitestone <alexander@alexanderwhitestone.com >
Co-committed-by: Alexander Whitestone <alexander@alexanderwhitestone.com >
2026-04-13 19:59:12 +00:00
Alexander Whitestone
1d8afc30fd
fix: reduce crisis detector false positives ( closes #32 )
...
Smoke Test / smoke (push) Successful in 5s
- Removed 'saying goodbye' from CRITICAL tier (too common in innocent contexts)
- Narrowed 'wrote a will' to 'wrote a suicide note' (responsible behavior)
- Removed broad single-word matches from HIGH tier: give up, trapped, desperate, worthless, hopeless, no future, nothing left, can't see any light
- Added contextual HIGH tier phrases: feel hopeless, trapped in this, desperate for help, give up on life, etc.
- Updated MODERATE tier with contextual versions: feel worthless, feel hopeless, feel trapped, etc.
- Updated index.html JavaScript keywords to match Python changes
- Added comprehensive false positive test suite
All existing tests pass. New tests verify innocent messages no longer trigger false alarms.
2026-04-13 15:37:23 -04:00