Every probe behind this layer was run on macOS. Most of that is no longer true, and this
ticket was rewritten on 2026-09-03 to say what is left rather than what was once unknown.
Settled since it was opened
| Was unknown |
Answer, and where |
Figures land in .config on Windows, where nothing expects them |
%APPDATA%\aidd when the variable is set, .config kept when a machine already journalled there — cli/src/infrastructure/home-dir.ts:41, cli/src/infrastructure/adapters/telemetry-sink-adapter.ts:57 |
skills/01-cost/scripts/lib/sink.js resolves the path |
that file no longer exists; the read path moved into the CLI |
| "Nothing about Linux has been measured" |
one job of twenty-two runs on windows-latest; every other runs on ubuntu-latest, so the whole suite is Linux evidence |
| Every hook path, the git calls, the journal's privacy |
the cli / Windows job runs the chain end to end — allow measurement with nothing installed, journal a captured payload, the journal stays private while git add -A still works, the plugin suite, a globally installed CLI, diagnose through the command each skill names, then unit, integration and e2e |
Windows went green for the first time on 2026-09-03 (#749), and it earned its place
immediately: it found two real defects that macOS could not. A mode assertion that measured
the platform rather than the repair, and check reporting "its script is not executable, so
git will not run it" about a hook git runs — an unknown printed as a fault on every Windows
run.
Two e2e files stay excluded there, each for a stated platform reason, not a workaround:
persona.e2e.test.ts needs /usr/bin/expect, and telemetry-multi-tool.e2e.test.ts puts an
extensionless #!/bin/sh stand-in on PATH, which Windows resolves by PATHEXT and never by
a shebang.
POSIX modes carry no information on Windows. Measured, not read from documentation:
statSync().mode & 0o777 reports 0o666 for every writable file whatever it was chmod'ed
to, and 0o444 when read-only. So 0700/0600 on the journal is not a privacy guarantee
there — it is a no-op, and any claim resting on it must say so.
What is actually left
- One real session per tool, on Windows and on Linux, that journals and reports. With the
tool's own binary, not a stand-in. CI proves the chain against captured payloads; it does
not prove that a real Claude Code, Codex, Copilot, Cursor or OpenCode session on those
platforms writes what the reader expects.
- What replaces the mode bits on Windows, if anything does. Either the journal's privacy
rests on the directory ACL and that is stated, or it is stated that it rests on nothing.
Done when
That last box overlaps #694, which proves the same chain under load. Whichever runs first
should carry both.
Every probe behind this layer was run on macOS. Most of that is no longer true, and this
ticket was rewritten on 2026-09-03 to say what is left rather than what was once unknown.
Settled since it was opened
.configon Windows, where nothing expects them%APPDATA%\aiddwhen the variable is set,.configkept when a machine already journalled there —cli/src/infrastructure/home-dir.ts:41,cli/src/infrastructure/adapters/telemetry-sink-adapter.ts:57skills/01-cost/scripts/lib/sink.jsresolves the pathwindows-latest; every other runs onubuntu-latest, so the whole suite is Linux evidencecli / Windowsjob runs the chain end to end — allow measurement with nothing installed, journal a captured payload, the journal stays private whilegit add -Astill works, the plugin suite, a globally installed CLI,diagnosethrough the command each skill names, then unit, integration and e2eWindows went green for the first time on 2026-09-03 (#749), and it earned its place
immediately: it found two real defects that macOS could not. A mode assertion that measured
the platform rather than the repair, and
checkreporting "its script is not executable, sogit will not run it" about a hook git runs — an unknown printed as a fault on every Windows
run.
Two e2e files stay excluded there, each for a stated platform reason, not a workaround:
persona.e2e.test.tsneeds/usr/bin/expect, andtelemetry-multi-tool.e2e.test.tsputs anextensionless
#!/bin/shstand-in onPATH, which Windows resolves byPATHEXTand never bya shebang.
POSIX modes carry no information on Windows. Measured, not read from documentation:
statSync().mode & 0o777reports0o666for every writable file whatever it waschmod'edto, and
0o444when read-only. So0700/0600on the journal is not a privacy guaranteethere — it is a no-op, and any claim resting on it must say so.
What is actually left
tool's own binary, not a stand-in. CI proves the chain against captured payloads; it does
not prove that a real Claude Code, Codex, Copilot, Cursor or OpenCode session on those
platforms writes what the reader expects.
rests on the directory ACL and that is stated, or it is stated that it rests on nothing.
Done when
That last box overlaps #694, which proves the same chain under load. Whichever runs first
should carry both.