fix: audit-driven fixes — quality hysteresis, intervention priority, persist safety
- quality_scorer: separate GOOD/POOR thresholds (0.45/0.35) to create
proper hysteresis band and prevent algorithm oscillation at boundary
- runtime_daemon: check should_break() BEFORE should_warn() with elif
to prevent priority inversion where warning blocks critical break
- background.ts: add schedulePersist() immediately after dismissal
mutation for defensive SW restart safety
- test_rabbit_hole: fix misleading comment (implement is no longer
a stop word after W-06)
e1f4346
fix: integrate pre-break warning into daemon loop and fix session report final segment
O-10: should_warn() was implemented in stress_integral.py but never called
in runtime_daemon.py — the 80% pre-break warning was dead code. Now called
before should_break(), surfacing a PRE_BREAK_WARNING via new template.
O-01: SessionReportGenerator.finish() did not close the final state's
duration into _state_durations, causing the last segment to be lost from
totals. Added end_timestamp parameter for deterministic testing.
176c2bb
docs: add CHANGELOG.md and update README with honest description
- CHANGELOG.md documents all Wave 1/2/3 changes with finding IDs
- README.md now includes What To Expect section from honest audit
6052baa
feat: innovation features — pre-break warning, session reports, topic calibration (Wave 3)
- O-10: Pre-break warning at 80% stress threshold via should_warn()
- O-01: SessionReportGenerator with full biometric session summaries
- O-04: Per-topic difficulty tracking in LongitudinalTracker
- O-07: Modality preference tracking in TabRelevanceTracker
7e31ad9
fix: detector robustness and config improvements (Wave 2C)
- W-06: Remove goal-relevant verbs from rabbit hole stop-word list
- W-20: Fix zombie detector docstring to match implementation
- W-19: Adaptive solution friction with exponential decay
- C-10: Make all shutdown detector thresholds configurable
- W-16: Sync Chrome extension cooldowns with daemon config
- W-17: Add quiet mode toggle to Chrome popup
- W-15: Remove overlay backdrop dim (transparent instead of 35%)
d59eff2
feat: tab type classifier and parser enforcement (Wave 2B)
- O-08: New tab_classifier.py — single source of truth for tab types
- W-05: Parser forces keep on AI assistant and documentation tabs
- W-26: Fix active recall biometric contradiction in prompts
- W-10: Add normalizer defaults to generic-phrase blocklist
- s6 same-category discount for coherent tab switching
3d9182b
fix: LLM quality and bandit improvements (Wave 2A)
- W-08: Add structured JSON response_format to Azure OpenAI calls
- W-12: Increase LinUCB regularization 1.0→5.0 for better cold-start
- W-13: Redistribute helpfulness reward weights when no explicit rating
- Token budget hard cap with 3-pass truncation (terminal→tabs→code)
- W-18: Mark deprecated InterventionTrigger, document TriggerPolicy
fb4ff40
fix: Chrome extension state persistence and onboarding (Wave 1C)
- C-09: Debounced SW state persistence to chrome.storage.session
- W-25: Tab-manager snapshot persistence across SW restarts
- C-08: First-run onboarding page with 3-step setup guide
- Popup shows disconnected banner when daemon not running
951d617
fix: LeetCode mode critical fixes (Wave 1D)
- C-07: Add lockout overlay renderer with skip button (no penalty)
- C-12: LeetCodeAdapter now inherits CortexAdapter protocol
- W-21: Zombie detector returns False when blink_rate is None
- W-28: Parasympathetic rebound temporal guard (5-min window)
636bc79
fix: LLM & intervention pipeline critical fixes (Wave 1B)
- Fix v2 template KeyError: add extra_context parameter to build_user_prompt()
and build_messages() so breathing_overlay, active_recall, rabbit_hole, and
alignment_summary templates format correctly (C-05)
- Add nuanced staleness check in _trigger_intervention: suppress stale
interventions when student is in FLOW >=3s or >50% tab references are
invalid (C-06)
- Fix is_destructive false positive: replace substring matching on labels
with action_type checking; close_tab is no longer flagged as destructive
since it is reversible (W-11)
- Add consent re-escalation API endpoints: GET /consent/level returns
current consent state, POST /consent/reset clears consent ladder (W-14)
2d20f1e
fix: signal & state engine critical fixes (Wave 1A)
- Raise SQI validity threshold from 0.1 to 0.4 (C-01)
- Add minimum IBI count guard (>=5) for HRV output (C-03)
- Add parabolic peak interpolation for sub-sample precision (C-02)
- Fix s6 blending to use weighted formula instead of max (C-04)
- Resolve YAML vs Pydantic default discrepancies (C-11)
- Make shutdown detector late_hour configurable via HandoverConfig (C-10)
- Add context-aware blink suppression with HR attenuation (O-09)
- Raise quality_scorer _QUALITY_POOR threshold to 0.40
cc4db87
fix: audit-driven product improvements and critical bug fixes
Engineering fixes:
- Fix inverted hysteresis exit logic in smoother (Schmitt trigger)
- Fix LLM call blocking 500ms state loop (spawn as background task)
- Fix respiration rate not propagated through feature fusion pipeline
- Add missing Chrome extension permissions (alarms, bookmarks, webNavigation)
Product improvements from efficacy audit:
- Replace biometric citations in causal explanations with behavioral observations
- Add telemetry-only fallback mode for poor lighting (dorm rooms)
- Add minimum tab count guard (3 tabs) to prevent over-closing
- Make breathing overlay gentler (casual tone, auto-dismiss 15s)
- Fix goal keyword extraction: add tech short words allowlist (ML, AI, Go, etc.)
- Fix substring false positives with word-boundary matching in goal classification
- Update prompts to lead with single most impactful action
- Update both READMEs to correct 13 documented inaccuracies
d7d1fbc
docs: audit and update all documentation for accuracy
- Rewrite architecture.md with v2.0 features: consent ladder, learning loop,
activity tracker, handover, detectors, and correct LLM/permissions info
- Fix setup.md: correct extension paths, build output dir, env var naming
- Fix deploy_azure.md: remove internal project name from path
- Add missing REST endpoints and WebSocket message types to apis.md
- Add formal adapter protocol and registry reference to adapters.md
37a6f33
docs: update README with Cortex branding and remove internal references
fc0cac8
chore: remove tool config files from repo and update .gitignore
- Remove .ralph/, .claude/, .vscode/, and .ralphrc from tracking
- Add them to .gitignore to prevent future commits
e0e1fec
feat: enhance LLM engine, webcam capture, and browser extension
- Expand LLM client with additional model support and error handling
- Add response parser logic for structured output extraction
- Improve webcam capture service with robust frame processing
- Update browser extension popup UI and background event handling
- Add new prompt templates for LLM engine
47ca30e
feat: enhance cortex runtime, apps, and services across the stack
- Overhaul browser extension background, popup, and content scripts
- Improve VS Code extension context provider and WebSocket client
- Add desktop shell onboarding, tray enhancements, and macOS build script
- Expand WebSocket server, API gateway routes, and LLM engine (Azure OpenAI, parser)
- Refactor schemas, config, state engine, and intervention engine
- Add runtime daemon, secrets utility, and deployment docs
- Update tests, calibration scripts, and setup documentation
227f517
feat: add activity tracker, enhance browser extension and handover services
- Add activity tracker service with app classifier integration
- Expand browser extension with content tracking, new tab dashboard, and activity hooks
- Enhance handover briefing and snapshot with activity context
- Update WebSocket server and runtime daemon for activity streaming
- Add activity schema definitions and unit tests
6a8a969
feat: add LeetCode mode, amygdala hijack, destructive struggle, and parasympathetic rebound detectors
762aa8b
feat: v2.0 — consent ladder, contextual bandit, biological detectors, and learning loop
Add consent-gated intervention system, LinUCB contextual bandit for
intervention selection, stress integral (biological pomodoro), zombie
reading detector, rabbit hole detector, screen apnea detection,
respiration estimation, focus transition graph, longitudinal baseline
tracking, end-of-day handover with morning briefing, copilot throttle,
project launcher, adapter registry, Redis/in-memory store, replay
harness, offline bandit trainer, and comprehensive test coverage.
Update browser extension with breathing/active-recall overlays, causal
explanations, user rating, and session storage resilience. Update VS
Code extension with morning briefing and inline suggestion throttling.
Rewrite README to document full v2.0 architecture.
63888ae
feat: enhance cortex runtime, apps, and services across the stack
- Overhaul browser extension background, popup, and content scripts
- Improve VS Code extension context provider and WebSocket client
- Add desktop shell onboarding, tray enhancements, and macOS build script
- Expand WebSocket server, API gateway routes, and LLM engine (Azure OpenAI, parser)
- Refactor schemas, config, state engine, and intervention engine
- Add runtime daemon, secrets utility, and deployment docs
- Update tests, calibration scripts, and setup documentation
272a6f8
feat: enhance cortex runtime, apps, and services across the stack
- Overhaul browser extension background, popup, and content scripts
- Improve VS Code extension context provider and WebSocket client
- Add desktop shell onboarding, tray enhancements, and macOS build script
- Expand WebSocket server, API gateway routes, and LLM engine (Azure OpenAI, parser)
- Refactor schemas, config, state engine, and intervention engine
- Add runtime daemon, secrets utility, and deployment docs
- Update tests, calibration scripts, and setup documentation
339245e
Audit and fix cortex runtime, docs, and test issues
46604d2
docs: rewrite Cortex README
0a88743
docs: update README with Ralph project overview
d8a107a
feat(chrome): implement Phase 13 — Chrome Extension
Manifest V3 Plasmo+React extension with service worker WebSocket client,
content script (TreeWalker DOM extraction, Shadow DOM overlay, 4-7-8
breathing pacer), popup UI (state/sensitivity/quiet mode), and tab
manager (classify, group/collapse, restore). 22 integration tests.
f19d4b2
feat(vscode): implement Phase 12 — VS Code Extension
TypeScript extension for VS Code with WebSocket client, context provider,
fold controller, intervention panel webview, and 4-7-8 breathing pacer.
15 integration tests for fold/restore round-trip protocol.
498d148
feat(desktop): implement Phase 14 — Desktop Shell with PySide6
Implement the full desktop shell application:
- main.py: QApplication entry, WebSocketBridge (async→Qt signal bridge),
CortexApp controller with signal routing, SIGINT handling
- tray.py: System tray icon with state-colored circles (FLOW=green,
HYPER=red, HYPO=blue, RECOVERY=amber), context menu, pause/resume
- dashboard.py: Live dashboard with state indicator, confidence bar,
signal quality meters, HR trace plot (rolling 60s), state scores,
session timeline with transition history
- overlay.py: Transparent always-on-top intervention overlay with
calming palette (soft blues), 4-7-8 breathing pacer animation,
micro-step checklist, Escape dismiss, 5-min auto-timeout
- settings.py: Webcam toggle, sensitivity slider (1-5 → threshold
mapping), cooldown, quiet mode, LLM backend selector, debug toggles
34 tests with mocked PySide6 (558 total passing)
ef46eeb
docs: implement Phase 17 — Documentation & Polish
Write comprehensive project documentation:
- docs/setup.md: installation, SSH tunnel, config, troubleshooting
- docs/architecture.md: 5-layer pipeline, data flow, repo structure
- docs/apis.md: all REST endpoints and WebSocket protocol with examples
- docs/calibration.md: baseline capture process and usage
- docs/adapters.md: guide for writing new workspace adapters
- README.md: project overview, quick start, tech stack, privacy
- .env.example: add missing posture and face_lost config values
fe21448
feat(tests): implement Phase 16 — Integration & End-to-End Testing
Add comprehensive integration tests covering the full Cortex pipeline:
- test_capture_to_state.py: feature fusion → rule scoring → EMA smoothing
→ state classification for FLOW/HYPER/HYPO states, signal quality, transitions
- test_context_to_llm.py: context assembly → prompt selection → LLM parsing
→ plan validation, E2E HYPER→intervention→recovery, privacy verification,
performance benchmarks (fusion <10ms, scoring <5ms, pipeline <200ms)
36 integration tests, 524 total passing.
659ff8d