felixm
f37e295166
Add Windows window-minimize guard
2026-06-02 12:34:14 -04:00
felixm
d149736946
Share unavailable() so the Windows sensor logs unavailable transitions
2026-06-02 12:33:23 -04:00
felixm
0daf8c2849
Add Windows polling active-window sensor
2026-06-02 12:30:16 -04:00
felixm
0f47d2dbf0
Document title/path truncation behavior in Win32 binding
2026-06-02 12:29:07 -04:00
felixm
0ac1511aac
Add Win32 binding for foreground window and minimize
2026-06-02 12:24:55 -04:00
felixm
7d62af0750
Document foregroundTracker unavailable-state contract
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-02 12:23:54 -04:00
felixm
e1194be3c2
Add emit-on-change tracker for the Windows polling sensor
2026-06-02 12:21:58 -04:00
felixm
f79c149039
Clarify .exe suffix handling in class normalization
2026-06-02 12:21:12 -04:00
felixm
4ea8aed04b
Add pure process-path to class normalization for Windows
2026-06-02 12:18:59 -04:00
felixm
885b0f9224
Plan Windows 11 support implementation
...
Six TDD/cross-compile tasks: pure class normalization and emit-on-change
tracker (unit-tested on Linux), Win32 binding, the two windows-tagged port
adapters, build-tag narrowing, and a whole-module cross-compile gate.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 12:08:01 -04:00
felixm
e0ea1eca83
Spec Windows 11 support via windows-tagged port adapters
...
Full-parity design: evidence.Source (polling) and enforce.Guard
(ShowWindow) behind the existing X11/no-op port boundaries, pure Go,
verified compile-only.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 11:35:39 -04:00
felixm
14ec2b6ea8
Remove shipped specs and plans; history and code are the record
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 22:00:52 -04:00
felixm
b447432df0
Track faithful-reflection implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 21:56:48 -04:00
felixm
ca5e76baf5
Test faithful on/off-task crediting through RecordWindow
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 21:05:07 -04:00
felixm
e5c32563d0
Render on/off-task split in the reflection block
2026-06-01 21:02:23 -04:00
felixm
7eb2b5dc58
Split session time into on/off/unclassified buckets
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 21:00:52 -04:00
felixm
6b99804132
Add faithful-reflection on/off-task split design spec
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:49:19 -04:00
felixm
38e1a175b6
Harden settings UI: robust parentDir, escape browse paths, surface load error
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:29:42 -04:00
felixm
ce201c57bb
Add settings gear, overlay, and file-browser modal to the UI
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:26:24 -04:00
felixm
326990d69a
Serialize settings applies; log fallback save error
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:24:17 -04:00
felixm
324aa3ebce
Drive daemon config from settings file via injected applier
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:21:07 -04:00
felixm
86c85629c0
Remove /knowledge/path; folded into /settings
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:18:44 -04:00
felixm
acf336c846
Strengthen /fs/browse test: assert dir and entry paths
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:16:36 -04:00
felixm
a108964457
Add GET /fs/browse directory-listing endpoint
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:15:00 -04:00
felixm
1a925b3a05
Clarify settings apply/save comment; strengthen settings tests
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:13:33 -04:00
felixm
2a196bcdb2
Add GET/POST /settings handlers with injected applier
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:10:47 -04:00
felixm
e3351b3d70
Add settings package: Settings file load/save/seed
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:07:42 -04:00
felixm
ae5cec3dce
Add settings page implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 19:53:27 -04:00
felixm
3fdbfd307b
Add settings page + settings file design spec
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 19:47:42 -04:00
felixm
4f6b26a220
Trust no proxies on the local server
...
antidriftd binds localhost only and sits behind no proxy, so trusting all
proxies (gin's default) is both wrong and a startup warning. Set an empty
trusted-proxy list to disable forwarded-IP header trust and silence it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 19:24:19 -04:00
felixm
71b8c80c69
Scrub spinner glyphs from window-title bucket keys
...
Bucket keys are {Class, ScrubTitle(Title)}, so each animated progress frame a
terminal app cycles into its title (Claude Code's braille and dingbat-star
glyphs) became a distinct bucket — fragmenting one task into dozens of rows and
inflating the switch count, since applyEvent counts a switch per key change.
ScrubTitle now drops any non-ASCII symbol or control rune and collapses leftover
whitespace. This is category-based rather than range-based, so future spinner
sets are covered too, while letters and digits of every script survive and ASCII
symbols (e.g. "C++") are left intact.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 19:23:49 -04:00
felixm
1c81eb1b50
Refresh the active evidence band live and drop its duplicate switch count
...
The active view's fast-path repainted only the status band, so the "now"
window, per-window buckets, and their times froze at the moment the active
screen first rendered — only the status-band switch count and the countdown
kept moving. Give the evidence band a stable id and repaint it every tick via
updateActiveEvidence, mirroring updateActiveDrift.
The evidence band's own "context switches" readout duplicated the live count
in the status band, so remove it (and its now-dead .switches CSS rule).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 19:23:49 -04:00
felixm
d95aed0111
Add AntiDrift favicon
2026-06-01 19:09:37 -04:00
felixm
895ad342c7
Migrate the reflection fetch onto runFetchAsync
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 18:12:10 -04:00
felixm
59283be733
Migrate the coach fetch onto runFetchAsync
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 18:08:48 -04:00
felixm
fbbff6966d
Migrate the knowledge fetch onto runFetchAsync
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 18:06:09 -04:00
felixm
db0d11ea2e
Add runFetchAsync helper and migrate the tasks fetch
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 18:05:08 -04:00
felixm
d3f0526355
Split async AI roles into roles.go
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 17:57:26 -04:00
felixm
0d3294b30d
Split drift/nudge/enforcement into drift.go
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 17:50:53 -04:00
felixm
d068e2f79c
Split evidence-stats accounting into stats.go
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 17:46:15 -04:00
felixm
a0f144968b
Split session views into views.go
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 17:42:53 -04:00
felixm
f13f33cf74
Add knowledge stale-discard characterization test
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 17:39:40 -04:00
felixm
465938906e
Add M9 tame-session refactor implementation plan
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 17:31:57 -04:00
felixm
79b3c0be95
Add M9 tame-session refactor design spec
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 17:24:36 -04:00
felixm
5adab985a7
Add the enforce toggle and drift-band minimize note
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 12:49:31 -04:00
felixm
4cc1edfc60
Wire the enforce guard into the daemon and assert it on the wire
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 12:46:59 -04:00
felixm
47f1167247
Minimize the off-task window on confirmed drift at the block level
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 12:43:30 -04:00
felixm
41c0a5fbbc
Thread per-commitment enforcement level through to the snapshot
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 12:41:09 -04:00
felixm
7fdcae5d14
Add enforce.Guard port with X11 and no-op adapters
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 12:35:54 -04:00
felixm
d0e6893659
Add M8 Tier A window-minimize enforcement implementation plan
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 12:22:59 -04:00