felixm
51cb09c520
M4: presentational review recap
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 21:13:04 -04:00
felixm
f5da12362a
M4: cockpit HUD with state-driven accent
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 21:10:03 -04:00
felixm
76816ae188
M4: split web UI assets into app.css and app.js
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 21:05:34 -04:00
felixm
097678e839
Mirror runtime status to ~/.antidrift_status
...
A window-manager status bar can now read a single-line status file: a
glyph plus minutes-remaining (● 24m / ⚠ DRIFT 24m / ● 24m ·? / ◔ planning
/ ✓ review), empty when idle. Rewritten on a one-minute tick, only when
the line changes, and removed on shutdown. Degrades to no file if $HOME
is unresolvable.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 20:49:48 -04:00
felixm
622a1cd401
Tie nudge validity to the on-task stretch
...
A soft nudge advisory belongs to one continuous on-task stretch in an allowed
app. Guard it with an on-task-stretch epoch (advanced on session reset and on
any non-on-task-match observation) instead of a session-only counter, and clear
the advisory on leaving the allowed app, so a stale 'Heads up' never resurfaces
after a drift episode.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 18:20:22 -04:00
felixm
20a102b4a4
Add dismiss-only Heads up tier for semantic nudges
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 18:10:03 -04:00
felixm
97577c003f
Assert semantic nudge reaches the state payload
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 18:08:51 -04:00
felixm
b43ba5179d
Orchestrate semantic nudge on the on-task path
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 18:07:31 -04:00
felixm
b96319d847
Add ai.Nudger role for semantic drift within allowed apps
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 17:57:20 -04:00
felixm
f73bb21c80
Add allowed-apps field and active-view drift interrupt UI
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 17:21:12 -04:00
felixm
6ca796dee3
Add /refocus and /ontask routes and carry allowed classes
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 17:18:25 -04:00
felixm
4e7676560d
Wire debounced cached async drift judgment into RecordWindow
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 17:16:59 -04:00
felixm
2977b903c2
Add drift state, persistence, and override controls to controller
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 16:53:23 -04:00
felixm
75d31b5fa8
Extend coach proposal with allowed window classes
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 16:49:06 -04:00
felixm
83bae00e45
Add DriftJudge AI role with verdict parsing
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 16:45:59 -04:00
felixm
7e9d00b80b
Port allowed-context matching to evidence package
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 16:42:48 -04:00
felixm
c61c9d46b1
M2: planning-view Sharpen control with non-clobbering coach updates
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 14:20:39 -04:00
felixm
38a62e4c68
M2: POST /coach route wiring the planning coach
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 14:19:12 -04:00
felixm
463ac4f23c
M2: controller async coach with generation guard and ephemeral state
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 14:16:28 -04:00
felixm
25a33f027a
M2: surface codex empty-output and clean CLI error messages
...
Addresses code-review follow-ups: codex now returns a specific error when
its -o file is empty rather than degrading to ErrEmptyResponse downstream;
CLI errors omit a dangling stderr suffix when stderr is empty.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 14:14:04 -04:00
felixm
3148fdfa92
M2: ai claude and codex CLI backends with selector
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 14:11:57 -04:00
felixm
dea8e6ba78
M2: ai Coach interface and Service over a pluggable Backend
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 14:10:49 -04:00
felixm
5545a4e1cd
M2: ai Proposal type, JSON extraction and validation
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 14:09:21 -04:00
felixm
ed5085ab6b
M1: make evidence tests race-clean
...
Rewrite TestFakeSourceEmits to synchronize through a channel (it now
asserts emission instead of racing on a shared slice and discarding it).
Skip the live X11 smoke test under -race: xgbutil's event loop has an
internal Quit/Quitting race on shutdown that is never reached in
production (Watch runs under a never-cancelled context.Background()).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:57:50 -04:00
felixm
f286609ec0
M1: render evidence (current window, buckets, switches) in UI
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:55:43 -04:00
felixm
63418d106f
M1: broadcast focus updates, expiry uses Expire outcome
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:52:55 -04:00
felixm
df384afb7c
M1: controller evidence stats, accumulation, replay, audit-at-End
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:49:19 -04:00
felixm
1646321d0b
M1: X11 active-window adapter + platform fallback
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:44:25 -04:00
felixm
034cc16540
M1: snapshot carries session_id and outcome_pending
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:42:35 -04:00
felixm
5ee34a350d
M1: raw per-session focus log with retention prune
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:41:08 -04:00
felixm
d780643015
M1: hash-chained session audit log
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:38:40 -04:00
felixm
a31ce702fe
M1: evidence types, Source port, ScrubTitle
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 12:37:04 -04:00
felixm
0318aeb08d
Add web server, SSE handlers, and UI
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:53:21 -04:00
felixm
f243f3004e
Add SSE broadcaster
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:49:57 -04:00
felixm
a8216095de
Make Complete atomic and guard zero deadline
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:49:03 -04:00
felixm
18108c3da3
Add session controller with snapshot persistence
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:45:46 -04:00
felixm
63247e402a
Add snapshot store
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:43:31 -04:00
felixm
de40fe73c7
Add runtime and commitment state machines
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:41:40 -04:00
felixm
0a934bf061
Harden timebox validation and test ForRuntime
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:39:38 -04:00
felixm
e66fddd29f
Add domain types and validation
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 11:36:51 -04:00