Jinjing and Neil
0a5a7b1446
fix(orcad): run the remote daemon at the login umask so worktrees it creates are not owner-only ( #31135 )
...
* fix(orcad): run the remote daemon at the login umask so worktrees it creates are not owner-only (#31125 )
* fix(orcad): keep refreshed Gemini OAuth tokens owner-only now that orcad runs at the login umask
The Gemini usage fetcher rewrote ~/.gemini/oauth_creds.json through a temp file and rename with
no mode, so the replacement took the process umask. Under the old inherited umask 077 that
happened to be 0600 on SSH hosts; at the login umask it would be 0644. Write it through
writeCredentialFileAtomic (0600 staging file, owner-only ACL on Windows).
The hostile-host matrix now checks that the deployed orcad runs at the SSH login's umask and that
its readiness file stays 0600.
* fix(orcad): keep rewritten agent configs at their mode and create the launch PID file owner-only
writeHooksJson now keeps an existing config's mode unless a caller opts out. Rewriting
~/.claude/settings.json (which can hold API keys) and the other agent configs through a temp file
used to take the process umask; inside orcad that was 077, and at the login umask it would widen an
owner-only file to 0644.
The launch runs `umask 077` in the foreground shell rather than inside the backgrounded nohup
list, so the PID file the foreground writes is created 0600 instead of relying on a racing chmod.
The Gemini credential test now pins umask 022 rather than inheriting the runner's.
* fix(agent-hooks): do not create a read-only temp file for a read-only Windows config
A preserved Windows mode can be read-only, which would leave an undeletable temp file behind when
the rename fails. POSIX keeps the preserved mode.
---------
Co-authored-by: Neil <neil@stably.ai >
2026-10-20 13:39:32 -07:00
..
2026-10-18 07:26:10 -07:00
2026-10-20 05:22:39 -07:00
2026-10-20 13:39:32 -07:00
2026-10-20 02:56:29 -07:00
2026-10-19 19:57:47 -07:00
2026-10-19 00:03:01 -07:00
2026-10-20 02:26:46 -07:00
2026-10-20 04:18:08 -07:00
2026-10-18 06:01:46 -07:00
2026-10-18 06:01:46 -07:00
2026-10-18 06:01:46 -07:00
2026-10-19 12:28:19 -07:00
2026-10-19 12:28:19 -07:00
2026-10-19 12:28:19 -07:00
2026-10-18 05:20:19 -07:00
2026-10-18 06:01:46 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 06:01:46 -07:00
2026-10-18 01:29:57 -07:00
2026-10-20 02:39:41 -07:00
2026-10-20 02:39:41 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 05:20:19 -07:00
2026-10-18 03:59:34 -07:00
2026-10-18 07:26:10 -07:00
2026-10-20 04:18:08 -07:00
2026-10-19 15:34:16 -07:00
2026-10-18 05:20:19 -07:00
2026-10-18 05:20:19 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 01:29:57 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-19 17:25:47 -07:00
2026-10-18 21:28:03 -07:00
2026-10-19 00:21:08 -07:00
2026-10-19 17:25:47 -07:00
2026-10-19 17:25:47 -07:00
2026-10-20 04:18:08 -07:00
2026-10-19 17:25:47 -07:00
2026-10-20 04:18:08 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-19 22:45:25 -07:00
2026-10-19 22:45:25 -07:00
2026-10-19 00:21:08 -07:00
2026-10-19 22:45:25 -07:00
2026-10-19 17:25:47 -07:00
2026-10-17 22:41:41 -07:00
2026-10-19 17:25:47 -07:00
2026-10-18 21:28:03 -07:00
2026-10-13 09:23:59 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-19 22:45:25 -07:00
2026-10-19 00:21:08 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-18 21:28:03 -07:00
2026-10-19 12:32:06 -07:00
2026-10-20 04:18:08 -07:00
2026-10-19 22:44:43 -07:00
2026-10-19 22:44:43 -07:00
2026-10-19 22:44:43 -07:00
2026-10-18 19:23:21 -07:00
2026-10-19 22:44:43 -07:00
2026-10-19 22:44:43 -07:00
2026-10-18 19:23:21 -07:00
2026-10-19 09:59:24 -07:00
2026-10-19 09:59:24 -07:00
2026-10-18 05:20:19 -07:00
2026-10-19 15:34:16 -07:00
2026-10-19 19:56:11 -07:00
2026-10-19 05:45:39 -07:00
2026-10-18 05:20:19 -07:00
2026-10-20 01:41:57 -07:00
2026-10-20 01:41:57 -07:00
2026-10-18 06:01:46 -07:00
2026-10-18 06:01:46 -07:00
2026-10-19 15:34:16 -07:00
2026-10-19 15:34:16 -07:00
2026-10-19 00:21:08 -07:00
2026-10-19 00:21:08 -07:00
2026-10-19 00:21:08 -07:00
2026-10-19 15:34:16 -07:00
2026-10-19 01:35:18 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 06:01:46 -07:00
2026-10-20 04:18:08 -07:00
2026-10-18 06:39:56 -07:00
2026-10-20 04:18:08 -07:00
2026-10-19 22:45:25 -07:00
2026-10-20 04:18:08 -07:00
2026-10-18 05:20:19 -07:00
2026-10-20 04:18:08 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 03:59:34 -07:00
2026-10-18 03:59:34 -07:00
2026-10-18 19:23:21 -07:00
2026-10-11 19:48:49 -07:00
2026-10-20 02:39:41 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 20:48:05 -07:00
2026-10-12 04:09:18 -07:00
2026-10-12 04:09:18 -07:00
2026-10-12 03:23:17 -07:00
2026-10-11 14:02:03 -07:00
2026-10-11 14:02:03 -07:00
2026-10-18 06:01:46 -07:00
2026-10-18 16:24:26 -07:00
2026-10-18 16:24:26 -07:00
2026-10-18 05:20:19 -07:00
2026-10-18 19:23:21 -07:00
2026-10-11 20:51:40 -07:00
2026-10-19 09:47:21 -07:00
2026-10-19 09:47:21 -07:00
2026-10-18 07:26:10 -07:00
2026-10-15 23:17:15 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-19 09:47:21 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 07:26:10 -07:00
2026-10-13 16:52:37 -07:00
2026-10-17 01:10:48 -07:00
2026-10-18 20:48:05 -07:00
2026-10-19 07:54:34 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 20:48:05 -07:00
2026-10-19 09:47:21 -07:00
2026-10-19 01:54:22 -07:00
2026-10-19 01:54:22 -07:00
2026-10-18 07:26:10 -07:00
2026-10-19 01:54:22 -07:00
2026-10-19 01:54:22 -07:00
2026-10-16 04:21:24 -07:00
2026-10-12 04:16:28 -07:00
2026-10-19 09:47:21 -07:00
2026-10-15 14:34:16 -07:00
2026-10-20 01:55:13 -07:00
2026-10-18 06:01:46 -07:00
2026-10-18 06:01:46 -07:00
2026-10-19 22:44:43 -07:00
2026-10-18 00:02:07 -07:00
2026-10-20 01:55:13 -07:00
2026-10-20 01:55:13 -07:00
2026-10-12 02:24:12 -07:00
2026-10-20 04:18:08 -07:00
2026-10-18 19:23:21 -07:00
2026-10-14 01:20:29 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 01:29:57 -07:00
2026-10-19 00:03:01 -07:00
2026-10-19 00:03:01 -07:00
2026-10-16 01:25:22 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 05:20:19 -07:00
2026-10-18 20:48:05 -07:00
2026-10-16 05:21:44 -07:00
2026-10-18 23:12:27 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 20:48:05 -07:00
2026-10-12 03:23:17 -07:00
2026-10-18 20:48:05 -07:00
2026-10-18 19:23:21 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 02:34:30 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 07:26:10 -07:00
2026-10-18 19:23:21 -07:00
2026-10-20 02:26:46 -07:00
2026-10-20 02:26:46 -07:00
2026-10-18 07:26:10 -07:00
2026-10-17 16:25:42 -07:00