Garry Tan and Claude Fable 5.1
2548634d96
fix(setup): never link over, copy over, or reap a skill gstack does not own ( #2119 )
...
The relink gate alone left three destructive sites open:
- link_claude_skill_dirs runs BEFORE relink on every ./setup and used
`ln -snf` (Linux replaces a user's real SKILL.md with a symlink into
gstack) or, on Windows, rm -rf + cp followed by a marker that made the
user's directory "ours" on the next flip. It and _install_alias_skill_md
now consult _claude_entry_is_ours first and skip loudly.
- cleanup_prefixed_claude_symlinks kept a bare name-match deletion and a
`*gstack*` substring match. Symlink arms use anchored `gstack/` segment
patterns; the Windows real-file arm proves provenance (marker,
byte-identity with our source, or the full two-line gen-skill-docs banner
within the first 40 lines, never a one-line substring another generator
could emit). cleanup_old_claude_symlinks uses the same banner rule.
- gstack-relink's fast path judged absolute targets before canonicalizing,
so `/x/gstack/../foreign/SKILL.md` counted as ours; dot-segment targets
now canonicalize first. Its banner rule matches setup's.
The `.gstack-owned` marker records the owning payload's realpath. Entries
skipped by setup or relink are listed in the final setup summary.
Chromium bootstrap refinements from the pre-landing review: an INT/TERM
trap kills the installer's process tree; the Windows npm chain no longer
masks an install failure; GSTACK_SKIP_PLAYWRIGHT=1 is reported as a choice
rather than a failure and sends no telemetry; the timeout knob is
normalized (0, 000, non-numeric, or more than nine digits fall back to the
600s default instead of killing on the first poll or never killing).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-04 17:28:00 +00:00
..
2026-09-01 16:42:11 -07:00
2026-09-01 16:42:11 -07:00
2026-08-15 22:20:30 -07:00
2026-08-29 10:10:35 -07:00
2026-03-18 23:57:59 -05:00
2026-08-15 22:20:30 -07:00
2026-08-29 10:10:35 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-08-27 09:50:31 -07:00
2026-09-01 11:15:11 -07:00
2026-08-27 09:50:31 -07:00
2026-08-29 10:10:35 -07:00
2026-08-29 09:06:54 -07:00
2026-04-19 17:50:31 +08:00
2026-08-31 08:55:30 -07:00
2026-06-21 07:15:19 -07:00
2026-08-31 08:55:30 -07:00
2026-08-19 11:42:55 -07:00
2026-08-19 11:42:55 -07:00
2026-05-29 08:35:00 -07:00
2026-08-19 11:42:55 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-16 19:34:41 -07:00
2026-05-20 07:35:01 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-05-29 08:35:00 -07:00
2026-06-07 19:13:24 -07:00
2026-06-07 19:13:24 -07:00
2026-08-29 09:06:54 -07:00
2026-06-07 19:13:24 -07:00
2026-08-14 09:28:56 -07:00
2026-08-29 09:06:54 -07:00
2026-08-16 19:34:41 -07:00
2026-08-15 22:20:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-15 11:42:19 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-05-16 12:32:33 -07:00
2026-08-31 08:55:30 -07:00
2026-08-27 09:50:31 -07:00
2026-08-08 09:28:45 -07:00
2026-06-07 19:13:24 -07:00
2026-08-15 09:37:04 -07:00
2026-05-28 18:21:09 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-16 19:34:41 -07:00
2026-05-30 12:09:10 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-05-21 21:21:07 -07:00
2026-06-07 19:13:24 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-28 11:43:13 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-15 22:20:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-15 22:20:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-14 22:02:07 -07:00
2026-08-29 09:06:54 -07:00
2026-05-20 07:35:01 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-28 11:43:13 -07:00
2026-08-31 08:55:30 -07:00
2026-08-15 11:42:19 -07:00
2026-06-08 06:20:58 -07:00
2026-08-31 08:55:30 -07:00
2026-06-21 07:15:19 -07:00
2026-08-29 09:06:54 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-06-08 06:20:58 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-05-21 21:21:07 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-05-17 08:26:36 -07:00
2026-08-31 08:55:30 -07:00
2026-05-30 14:57:07 -07:00
2026-08-08 09:28:45 -07:00
2026-08-16 19:34:41 -07:00
2026-08-15 22:20:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-09-01 11:15:11 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-15 11:42:19 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-06-08 06:20:58 -07:00
2026-06-08 06:20:58 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-27 09:50:31 -07:00
2026-05-29 08:35:00 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-19 11:42:55 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-05-14 17:20:48 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-04-26 13:55:13 -07:00
2026-08-31 08:55:30 -07:00
2026-08-14 09:28:56 -07:00
2026-09-01 11:15:11 -07:00
2026-09-04 17:28:00 +00:00
2026-08-14 22:02:07 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-08-14 22:02:07 -07:00
2026-08-17 07:50:37 -07:00
2026-08-31 08:55:30 -07:00
2026-08-15 11:42:19 -07:00
2026-07-14 16:35:30 -07:00
2026-06-14 11:40:57 -07:00
2026-04-18 15:05:42 +08:00
2026-05-30 14:57:07 -07:00
2026-08-15 09:37:04 -07:00
2026-09-01 11:15:11 -07:00
2026-05-21 21:21:07 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-05-07 20:14:59 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-05-20 07:35:01 -07:00
2026-05-30 14:57:07 -07:00
2026-04-19 08:38:19 +08:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-14 22:02:07 -07:00
2026-08-27 09:50:31 -07:00
2026-04-25 11:52:48 -07:00
2026-08-14 22:02:07 -07:00
2026-08-14 22:02:07 -07:00
2026-08-14 22:02:07 -07:00
2026-08-31 08:55:30 -07:00
2026-08-14 22:02:07 -07:00
2026-08-27 09:50:31 -07:00
2026-08-08 09:28:45 -07:00
2026-04-17 00:45:13 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-14 22:02:07 -07:00
2026-05-26 16:50:03 -07:00
2026-05-30 12:09:10 -07:00
2026-08-15 09:37:04 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-05-06 19:37:53 -07:00
2026-08-31 08:55:30 -07:00
2026-06-07 22:04:18 -07:00
2026-08-30 20:45:19 -07:00
2026-08-31 08:55:30 -07:00
2026-08-14 09:28:56 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-15 09:37:04 -07:00
2026-09-01 11:15:11 -07:00
2026-05-30 08:54:46 -07:00
2026-09-01 11:15:11 -07:00
2026-08-16 19:34:41 -07:00
2026-05-30 08:54:46 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-05-30 08:54:46 -07:00
2026-05-30 12:09:10 -07:00
2026-06-07 06:51:10 -07:00
2026-08-27 09:50:31 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-09-01 11:15:11 -07:00
2026-09-01 11:15:11 -07:00
2026-09-04 17:28:00 +00:00
2026-05-30 12:09:10 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-05-29 08:35:00 -07:00
2026-09-01 11:15:11 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 16:42:11 -07:00
2026-08-29 09:06:54 -07:00
2026-05-29 08:35:00 -07:00
2026-08-31 08:55:30 -07:00
2026-05-29 08:35:00 -07:00
2026-04-24 01:38:21 -07:00
2026-06-04 11:14:43 -07:00
2026-06-21 07:15:19 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-07-09 23:49:09 -07:00
2026-08-31 08:55:30 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-09-01 11:15:11 -07:00
2026-09-04 17:28:00 +00:00
2026-08-14 22:02:07 -07:00
2026-08-18 17:00:04 -07:00
2026-08-31 08:55:30 -07:00
2026-05-29 18:06:19 -07:00
2026-08-27 09:50:31 -07:00
2026-08-27 09:50:31 -07:00
2026-08-24 08:55:58 -07:00
2026-08-19 16:53:19 -07:00
2026-09-04 17:28:00 +00:00
2026-08-31 08:55:30 -07:00
2026-09-04 17:28:00 +00:00
2026-08-14 22:02:07 -07:00
2026-08-16 19:34:41 -07:00
2026-09-01 11:15:11 -07:00
2026-08-19 16:53:19 -07:00
2026-08-16 19:34:41 -07:00
2026-08-15 11:42:19 -07:00
2026-08-30 20:45:19 -07:00
2026-05-30 12:09:10 -07:00
2026-08-16 19:34:41 -07:00
2026-05-30 12:09:10 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 10:10:35 -07:00
2026-09-01 11:15:11 -07:00
2026-08-14 09:28:56 -07:00
2026-08-16 19:34:41 -07:00
2026-06-04 11:14:43 -07:00
2026-04-19 08:38:19 +08:00
2026-08-15 22:20:30 -07:00
2026-08-15 22:20:30 -07:00
2026-06-12 15:38:53 -07:00
2026-08-27 09:50:31 -07:00
2026-08-29 10:10:35 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 10:10:35 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-30 20:45:19 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-07-14 16:35:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-19 11:42:55 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-15 09:37:04 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 10:10:35 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-09-01 16:42:11 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-08-28 11:43:13 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-27 09:50:31 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-03-13 21:08:12 -07:00
2026-05-29 08:35:00 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-29 09:06:54 -07:00
2026-08-31 08:55:30 -07:00
2026-08-27 09:50:31 -07:00
2026-08-29 09:06:54 -07:00
2026-05-25 10:57:15 -07:00
2026-08-31 08:55:30 -07:00
2026-05-29 08:35:00 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-09-04 17:28:00 +00:00
2026-05-30 12:09:10 -07:00
2026-06-08 05:41:07 -07:00
2026-08-29 10:10:35 -07:00
2026-08-31 08:55:30 -07:00
2026-08-28 11:43:13 -07:00
2026-08-28 11:43:13 -07:00
2026-08-31 08:55:30 -07:00
2026-08-15 22:20:30 -07:00
2026-08-15 22:20:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-31 08:55:30 -07:00
2026-08-16 09:53:31 -07:00
2026-05-30 12:09:10 -07:00
2026-08-16 19:34:41 -07:00
2026-08-31 08:55:30 -07:00
2026-08-14 22:02:07 -07:00
2026-08-31 08:55:30 -07:00
2026-08-19 11:42:55 -07:00
2026-08-31 08:55:30 -07:00
2026-08-28 11:43:13 -07:00
2026-08-15 09:37:04 -07:00
2026-08-19 16:53:19 -07:00
2026-08-29 09:06:54 -07:00
2026-08-14 22:02:07 -07:00
2026-08-31 08:55:30 -07:00
2026-08-27 09:50:31 -07:00