feat: community wave — 7 fixes, relink, sidebar Write, discoverability (v0.13.5.0)#641
Merged
feat: community wave — 7 fixes, relink, sidebar Write, discoverability (v0.13.5.0)#641
Conversation
Tests-first for all fixes in this PR wave: - #594 discoverability: gstack tag in descriptions, 120-char first line - #573 feature signals: ship/SKILL.md Step 4 detection - #510 context warnings: no preemptive warnings in generated files - #474 Safety Net: no find -delete in generated files - #467 telemetry: JSONL writes gated by _TEL conditional - #584 sidebar: Write in allowedTools, stderr capture - #578 relink: prefixed/flat symlinks, cleanup, error, config hook Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-delete is a non-POSIX extension that fails on Safety Net environments.
-exec rm {} + is POSIX-compliant and works everywhere.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When telemetry is off, nothing is written anywhere — not just remote, but local JSONL too. Clean trust contract: off means off everywhere. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The system handles context compaction automatically. Preemptive warnings waste tokens and create false urgency. Skills should not warn about context limits — just describe the compression priority order. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Every SKILL.md.tmpl description now contains "gstack" on the last line, making skills findable in Claude Code's command palette. First-line hooks stay under 120 chars. Split ship description to fix wrapping. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New bin/gstack-relink creates prefixed (gstack-*) or flat symlinks based on skill_prefix config. gstack-config auto-triggers relink when skill_prefix changes. Setup guards against recursive calls with GSTACK_SETUP_RUNNING env var. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
/ship Step 4 now checks for feature signals (new routes, migrations, test+source pairs, feat/ branches) when deciding version bumps. PATCH requires no feature signals. MINOR asks the user if any signal is detected or 500+ lines changed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…584) Add Write to sidebar allowedTools (both sidebar-agent.ts and server.ts). Write doesn't expand attack surface beyond what Bash already provides. Replace empty stderr handler with buffer capture for better error diagnostics. New bin/gstack-open-url for cross-platform URL opening. Does NOT include Search Before Building intro flow (deferred). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…-594-573 # Conflicts: # browse/src/server.ts # browse/src/sidebar-agent.ts
The fallback allowedTools string now includes Write, matching the sidebar-agent.ts change from commit 68dc957. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
gstack-relink now checks if a skill directory is already named gstack-* before prepending the prefix. Previously, setting skill_prefix=true would create gstack-gstack-upgrade, breaking the /gstack-upgrade command. Matches setup script behavior (setup:260) which already has this guard. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Main landed v0.13.5.0 (Factory Droid Compatibility) while this branch also had v0.13.5.0 (Community Wave). Resolved by keeping both entries and bumping this branch to v0.13.6.0. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
E2E Evals: ✅ PASS60/60 tests passed | $5.77 total cost | 12 parallel runners
12x ubicloud-standard-2 (Docker: pre-baked toolchain + deps) | wall clock ≈ slowest suite |
Generated Factory Droid skills are build output, same as .agents/. They should not be committed to the repo. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Main landed v0.13.5.1 (gitignore .factory) while this branch had v0.13.6.0. Both entries kept, v0.13.6.0 stays as the higher version. The .factory gitignore change was already on this branch. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Main landed v0.13.6.0 (GStack Learns) while this branch had v0.13.6.0 (Community Wave). Resolved by keeping both entries and bumping this branch to v0.13.7.0. Regenerated SKILL.md files to pick up new learn skill and apply the find -exec rm fix from this branch. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Seven fixes from community PRs and adversarial review, plus new tooling for skill management and sidebar capabilities.
Fixes
_TELsetting (Security audit: session directory scanning + telemetry transparency concerns #467)find -deletereplaced with POSIX-exec rmfor Safety Net compatibility (Safety Net plugin blocks preamble cleanup commands #474)/plan-eng-review(Context warnings trigger too early on 1M context window models #510)gstack-relinkno longer double-prefixesgstack-upgrade(found by Codex+Claude adversarial review)New Features
/shipversion bump heuristic (fix: add feature-signal detection to ship version bump heuristic #573)bin/gstack-relink— auto-relink skills whenskill_prefixconfig changes (Skill prefix namespace setting not applied + slash command descriptions too long #578)bin/gstack-open-url— cross-platform URL opener (macOS/Linux/Windows)Test Coverage
648 tests pass, 0 failures. New regression test for double-prefix bug.
Pre-Landing Review
No issues found.
Adversarial Review
Large tier (1200+ lines). Codex structured review + Claude adversarial subagent + Codex adversarial.
High confidence (found by multiple sources):
gstack-relinkdouble-prefix bug — FIXED (commit 2968d32)Informational (not blocking):
gstack-open-urlURL validation (callers validate upstream)TODOS
No TODO items completed in this PR.
Test plan
🤖 Generated with Claude Code