Skip to content

chore: improve worktree skill with full dep sync and status enhancements#906

Merged
Aureliolo merged 3 commits intomainfrom
chore/worktree-skill-improvements
Mar 28, 2026
Merged

chore: improve worktree skill with full dep sync and status enhancements#906
Aureliolo merged 3 commits intomainfrom
chore/worktree-skill-improvements

Conversation

@Aureliolo
Copy link
Copy Markdown
Owner

Summary

  • Full dependency sync: setup now installs Python (uv), Node.js (npm), and Go deps -- matching wt-synthorg.ps1. Fixed cd usage blocked by hooks to use --project/--prefix/-C flags
  • Mode 4 (description-only): /worktree setup "description" creates worktrees without GitHub issues, for ad-hoc work
  • Rebase dep re-sync: rebase command now re-syncs all deps after successful rebase (lock files may change)
  • Status dep staleness: status shows a Deps column flagging worktrees with stale lock files vs main
  • Cleanup absorbs /clean_gone: cleanup now also prunes non-worktree gone branches in one pass
  • Lock contention docs: expanded to cover uv, npm, and Go module cache (was uv-only)

Test plan

  • Verified all 5 existing worktrees have full deps installed (uv + npm + go)
  • Run /worktree setup "test" to verify Mode 4
  • Run /worktree status to verify Deps column
  • Run /worktree rebase after a main merge to verify dep re-sync

Review coverage

Quick mode -- no agents (docs-only change to .claude/skills/worktree/SKILL.md)

🤖 Generated with Claude Code

…enhancements

Aligns the worktree skill with wt-synthorg.ps1 by adding npm and Go
dependency installation alongside uv sync. Fixes cd usage that gets
blocked by hooks (now uses --project/--prefix/-C flags). Adds Mode 4
for description-only worktrees without GitHub issues, dep re-sync
after rebase, dep staleness column in status, gone branch cleanup in
cleanup command, and comprehensive lock contention docs for all three
package managers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 28, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 63166148-361b-44bf-9f1e-c428da63a269

📥 Commits

Reviewing files that changed from the base of the PR and between e891469 and 7c2f7c2.

📒 Files selected for processing (1)
  • .claude/skills/worktree/SKILL.md

Walkthrough

Documentation updates to worktree tooling: added Mode 4 to /worktree setup for description-only worktree creation that auto-generates branch names, skips issue fetching and prompt output, and reports the worktree path with a shell command. Setup now runs sequential, tool-specific dependency pre-syncs (uv, npm, go) without using cd. /worktree cleanup uses a plumbing git for-each-ref filter to prune local gone branches and notes the count. /worktree status compares lock files to main and marks deps stale when divergent. /worktree rebase re-syncs dependencies after successful rebases. Rules document lists package-manager-specific cache/lock checks.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: improving the worktree skill with full dependency sync and status enhancements, which aligns with the primary objectives of the PR.
Description check ✅ Passed The description is comprehensive and directly related to the changeset, covering all major changes including full dep sync, Mode 4, rebase dep re-sync, status enhancements, cleanup improvements, and documentation updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request enhances the worktree skill documentation by adding a description-only setup mode, expanding dependency management to support Node.js and Go, and introducing automated cleanup for 'gone' branches. It also adds a mechanism to detect stale dependencies by comparing lock files against the main branch. The review feedback recommends using more robust Git plumbing commands for branch listing and utilizing exit codes for difference checks to improve scripting reliability.

8. **Clean remaining gone branches** that are not associated with worktrees (e.g. branches created outside the worktree workflow). After worktree-specific cleanup is done, check for any additional local branches whose remote tracking branch is gone:

```bash
git branch -vv | grep '\[.*: gone\]'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The command git branch -vv produces output intended for human consumption, which can be brittle to parse in scripts. For better robustness, I recommend using git for-each-ref, which is a 'plumbing' command designed for scripting.

You can get a list of branches with gone upstreams like this:

git for-each-ref --format='%(refname:short) %(upstream:track,gone)' refs/heads | grep '\[gone\]$'

This produces a clean, parsable output (e.g., my-branch [gone]) that makes extracting the branch names for deletion much more reliable.

Suggested change
git branch -vv | grep '\[.*: gone\]'
git for-each-ref --format='%(refname:short) %(upstream:track,gone)' refs/heads | grep '\[gone\]$'

Comment on lines +352 to +354
git diff main -- uv.lock | head -1
git diff main -- web/package-lock.json | head -1
git diff main -- cli/go.sum | head -1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Piping git diff to head -1 and checking for output works, but a more idiomatic and robust way to check for differences in a script is to use the --quiet flag.

git diff --quiet exits with code 0 if there are no differences and 1 if there are differences, which is exactly what's needed here. This avoids parsing output and is generally more reliable for scripting.

Suggested change
git diff main -- uv.lock | head -1
git diff main -- web/package-lock.json | head -1
git diff main -- cli/go.sum | head -1
git diff --quiet main -- uv.lock
git diff --quiet main -- web/package-lock.json
git diff --quiet main -- cli/go.sum

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 28, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 7c2f7c2.
Ensure that dependencies are being submitted on PR branches. Re-running this action after a short time may resolve the issue. See the documentation for more information and troubleshooting advice.

Scanned Files

None

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/skills/worktree/SKILL.md:
- Around line 298-315: The docs claim "/worktree cleanup" subsumes "/clean_gone"
but the duplicate gone-branch pruning still exists in the post-merge-cleanup
skill; remove the redundancy by deleting the gone-branch cleanup logic from
.claude/skills/post-merge-cleanup/SKILL.md (the block that runs `git branch -vv
| grep '\[.*: gone\]'` and deletes branches) and then update the
.claude/skills/worktree/SKILL.md text (the sentence claiming it "subsumes the
/clean_gone command") to clearly state that worktree cleanup handles gone
branches and that post-merge-cleanup no longer performs that step; ensure
references to `/clean_gone`, `/worktree cleanup`, and `/post-merge-cleanup`
remain consistent so users aren’t confused.
- Around line 361-366: The Markdown code block containing the status table (the
block starting with "Worktree             | Branch                    | vs Main 
| PR     | Status     | Deps") needs a language specifier to satisfy the linter
and improve rendering; update the opening fence from ``` to ```text (or another
appropriate language) so the table is fenced as a text code block and leave the
block contents unchanged.
- Around line 148-166: Add blank lines before and after each fenced code block
for the three examples (the Python "uv sync --project <dir-path>" block, the
Node.js "npm --prefix <dir-path>/web install --silent" block, and the Go "go -C
<dir-path>/cli mod download" block) so the markdown linter stops flagging
missing surrounding blank lines; specifically insert a blank line immediately
above each ```bash fence and immediately below each closing ``` fence
(preserving the surrounding explanatory text like "Python:", "Node.js (web
dashboard):", and "Go (CLI):").
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d7f63db4-062e-4519-b88f-11f0a24e04c9

📥 Commits

Reviewing files that changed from the base of the PR and between 1d81546 and 4c99805.

📒 Files selected for processing (1)
  • .claude/skills/worktree/SKILL.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Dependency Review
  • GitHub Check: Analyze (python)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T21:32:02.880Z
Learning: Applies to .github/workflows/*.yml : Dependabot: daily updates for uv + github-actions + npm + pre-commit + docker + gomod, grouped minor/patch, no auto-merge. Use `/review-dep-pr` to review Dependabot PRs before merging.
📚 Learning: 2026-03-15T21:32:02.880Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T21:32:02.880Z
Learning: Applies to .github/workflows/*.yml : Dependabot: daily updates for uv + github-actions + npm + pre-commit + docker + gomod, grouped minor/patch, no auto-merge. Use `/review-dep-pr` to review Dependabot PRs before merging.

Applied to files:

  • .claude/skills/worktree/SKILL.md
📚 Learning: 2026-03-15T18:17:43.675Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T18:17:43.675Z
Learning: Pre-commit hooks: trailing-whitespace, end-of-file-fixer, check-yaml, check-toml, check-json, check-merge-conflict, check-added-large-files, no-commit-to-branch (main), ruff check+format, gitleaks, hadolint (Dockerfile linting).

Applied to files:

  • .claude/skills/worktree/SKILL.md
🪛 markdownlint-cli2 (0.22.0)
.claude/skills/worktree/SKILL.md

[warning] 151-151: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 156-156: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 161-161: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 361-361: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (5)
.claude/skills/worktree/SKILL.md (5)

475-484: Dependency re-sync uses same commands as setup.

This section repeats the dependency sync commands from lines 148-166. The same verification concerns apply here regarding the uv sync --project, npm --prefix, and go -C flag syntax.


54-61: LGTM! Mode 4 provides useful flexibility.

The description-only mode is well-documented and clearly specifies which setup steps are skipped versus retained. This addresses ad-hoc development workflows effectively.


349-367: LGTM! Dependency staleness detection is well-designed.

The logic correctly flags stale dependencies only when lock files differ from main AND the worktree is behind. The head -1 approach efficiently detects any diff without processing the entire output.


514-518: LGTM! Comprehensive lock contention guidance.

The expanded documentation now covers all three package managers with specific lock paths and troubleshooting commands. This provides valuable operational guidance for multi-worktree scenarios.


148-166: All package manager command flags are correct.

Verification confirms:

  • uv sync --project <dir-path> is valid syntax (global option per official uv CLI documentation)
  • npm --prefix <dir-path>/web install --silent uses standard npm flag
  • go -C <dir-path>/cli mod download is supported in Go 1.20+ (system has 1.26.1)

No changes required to the documented commands.

Comment on lines +298 to 315
8. **Clean remaining gone branches** that are not associated with worktrees (e.g. branches created outside the worktree workflow). After worktree-specific cleanup is done, check for any additional local branches whose remote tracking branch is gone:

```bash
git branch -vv | grep '\[.*: gone\]'
```

Delete each one individually (these are non-worktree branches, safe to delete without worktree removal):

Report: "Clean. Main up to date, N worktrees removed, N branches deleted."
```bash
git branch -D <branch-name>
```

This subsumes the `/clean_gone` command -- no need to run it separately after `/worktree cleanup`.

9. **Report summary:**

Report: "Clean. Main up to date, N worktrees removed, N branches deleted, M gone branches pruned."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clarify relationship with /post-merge-cleanup skill.

The documentation claims this "subsumes the /clean_gone command" (line 310), but the .claude/skills/post-merge-cleanup/SKILL.md skill still exists and performs identical gone branch cleanup (lines 17-31 of that file). This creates redundancy rather than subsumption:

  • Both /worktree cleanup and /post-merge-cleanup now independently clean gone branches
  • Users may be unsure which command to use or might run both unnecessarily

Consider either:

  1. Remove gone branch cleanup from post-merge-cleanup if worktree cleanup truly subsumes it
  2. Update the documentation to say "also cleans gone branches" rather than "subsumes"
  3. Have one skill delegate to the other to avoid duplicate logic
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/worktree/SKILL.md around lines 298 - 315, The docs claim
"/worktree cleanup" subsumes "/clean_gone" but the duplicate gone-branch pruning
still exists in the post-merge-cleanup skill; remove the redundancy by deleting
the gone-branch cleanup logic from .claude/skills/post-merge-cleanup/SKILL.md
(the block that runs `git branch -vv | grep '\[.*: gone\]'` and deletes
branches) and then update the .claude/skills/worktree/SKILL.md text (the
sentence claiming it "subsumes the /clean_gone command") to clearly state that
worktree cleanup handles gone branches and that post-merge-cleanup no longer
performs that step; ensure references to `/clean_gone`, `/worktree cleanup`, and
`/post-merge-cleanup` remain consistent so users aren’t confused.

… fixes

Use git for-each-ref (plumbing) instead of git branch -vv (porcelain)
for gone-branch detection. Use git diff --quiet exit codes instead of
piping to head. Add blank lines around fenced code blocks, add text
language specifier to status table. Update post-merge-cleanup to also
use for-each-ref and handle worktree-attached gone branches.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/skills/worktree/SKILL.md:
- Around line 159-160: Replace uses of the npm install command with npm ci to
ensure deterministic installs: update the command string "npm --prefix
<dir-path>/web install --silent" to "npm --prefix <dir-path>/web ci --silent"
(and update the other occurrence noted around lines 482-483) — find the exact
occurrences of the install command in SKILL.md and swap "install" for "ci" while
keeping the --prefix and --silent flags unchanged.
- Around line 352-358: The dependency staleness checks run git diff against the
repo root instead of each worktree because the commands lack git -C <path>;
update the three commands (the git diff --quiet main -- uv.lock, git diff
--quiet main -- web/package-lock.json, and git diff --quiet main -- cli/go.sum)
to run with worktree context (e.g., git -C <worktree-path> diff --quiet main --
<lockfile>) so each lockfile is compared inside its respective worktree.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7229f7e1-d6cc-4498-bcf5-aaffc7d620a4

📥 Commits

Reviewing files that changed from the base of the PR and between 4c99805 and e891469.

📒 Files selected for processing (2)
  • .claude/skills/post-merge-cleanup/SKILL.md
  • .claude/skills/worktree/SKILL.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Dependency Review
  • GitHub Check: Analyze (python)
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T21:32:02.880Z
Learning: Applies to .github/workflows/*.yml : Dependabot: daily updates for uv + github-actions + npm + pre-commit + docker + gomod, grouped minor/patch, no auto-merge. Use `/review-dep-pr` to review Dependabot PRs before merging.
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T12:00:18.113Z
Learning: Commits: <type>: <description> — types: feat, fix, refactor, docs, test, chore, perf, ci. Enforced by commitizen (commit-msg hook). Signed commits: required on main via branch protection — all commits must be GPG/SSH signed.
📚 Learning: 2026-03-15T18:17:43.675Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T18:17:43.675Z
Learning: Pre-commit hooks: trailing-whitespace, end-of-file-fixer, check-yaml, check-toml, check-json, check-merge-conflict, check-added-large-files, no-commit-to-branch (main), ruff check+format, gitleaks, hadolint (Dockerfile linting).

Applied to files:

  • .claude/skills/worktree/SKILL.md
📚 Learning: 2026-03-15T21:32:02.880Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T21:32:02.880Z
Learning: Applies to .github/workflows/*.yml : Dependabot: daily updates for uv + github-actions + npm + pre-commit + docker + gomod, grouped minor/patch, no auto-merge. Use `/review-dep-pr` to review Dependabot PRs before merging.

Applied to files:

  • .claude/skills/worktree/SKILL.md
📚 Learning: 2026-03-15T21:49:53.264Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T21:49:53.264Z
Learning: Fix everything valid — never skip when review agents find valid issues (including pre-existing issues in surrounding code, suggestions, and findings adjacent to the PR's changes). No deferring, no 'out of scope' skipping.

Applied to files:

  • .claude/skills/worktree/SKILL.md
📚 Learning: 2026-03-21T11:08:01.542Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-21T11:08:01.542Z
Learning: Applies to **/*.{py,md} : Line length: 88 characters (ruff).

Applied to files:

  • .claude/skills/worktree/SKILL.md
📚 Learning: 2026-03-28T14:27:45.937Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-28T14:27:45.937Z
Learning: When review agents find valid issues (including pre-existing issues in surrounding code, suggestions, and findings adjacent to the PR's changes), fix them all — no deferring, no 'out of scope' skipping

Applied to files:

  • .claude/skills/worktree/SKILL.md
🔇 Additional comments (1)
.claude/skills/post-merge-cleanup/SKILL.md (1)

19-23: Good safety/robustness update for gone-branch cleanup.

Switching to git for-each-ref and explicitly requiring worktree removal before branch deletion is the right direction.

Also applies to: 31-32

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Aureliolo Aureliolo merged commit 772c625 into main Mar 28, 2026
9 of 10 checks passed
@Aureliolo Aureliolo deleted the chore/worktree-skill-improvements branch March 28, 2026 16:00
Aureliolo added a commit that referenced this pull request Mar 30, 2026
🤖 I have created a release *beep* *boop*
---
#MAJOR CHANGES; We got a somewhat working webui :)

##
[0.5.0](v0.4.9...v0.5.0)
(2026-03-30)


### Features

* add analytics trends and budget forecast API endpoints
([#798](#798))
([16b61f5](16b61f5))
* add department policies to default templates
([#852](#852))
([7a41548](7a41548))
* add remaining activity event types (task_started, tool_used,
delegation, cost_incurred)
([#832](#832))
([4252fac](4252fac))
* agent performance, activity, and history API endpoints
([#811](#811))
([9b75c1d](9b75c1d))
* Agent Profiles and Detail pages (biography, career, performance)
([#874](#874))
([62d7880](62d7880))
* app shell, Storybook, and CI/CD pipeline
([#819](#819))
([d4dde90](d4dde90))
* Approvals page with risk grouping, urgency indicators, batch actions
([#889](#889))
([4e9673d](4e9673d))
* Budget Panel page (P&L dashboard, breakdown charts, forecast)
([#890](#890))
([b63b0f1](b63b0f1))
* build infrastructure layer (API client, auth, WebSocket)
([#815](#815))
([9f01d3e](9f01d3e))
* CLI global options infrastructure, UI modes, exit codes, env vars
([#891](#891))
([fef4fc5](fef4fc5))
* CodeMirror editor and theme preferences toggle
([#905](#905),
[#807](#807))
([#909](#909))
([41fbedc](41fbedc))
* Company page (department/agent management)
([#888](#888))
([cfb88b0](cfb88b0))
* comprehensive hint coverage across all CLI commands
([#900](#900))
([937974e](937974e))
* config system extensions, per-command flags for
init/start/stop/status/logs
([#895](#895))
([32f83fe](32f83fe))
* configurable currency system replacing hardcoded USD
([#854](#854))
([b372551](b372551))
* Dashboard page (metric cards, activity feed, budget burn)
([#861](#861))
([7d519d5](7d519d5))
* department health, provider status, and activity feed endpoints
([#818](#818))
([6d5f196](6d5f196))
* design tokens and core UI components
([#833](#833))
([ed887f2](ed887f2))
* extend approval, meeting, and budget API responses
([#834](#834))
([31472bf](31472bf))
* frontend polish -- real-time UX, accessibility, responsive,
performance ([#790](#790),
[#792](#792),
[#791](#791),
[#793](#793))
([#917](#917))
([f04a537](f04a537))
* implement human roles and access control levels
([#856](#856))
([d6d8a06](d6d8a06))
* implement semantic conflict detection in workspace merge
([#860](#860))
([d97283b](d97283b))
* interaction components and animation patterns
([#853](#853))
([82d4b01](82d4b01))
* Login page + first-run bootstrap + Company page
([#789](#789),
[#888](#888))
([#896](#896))
([8758e8d](8758e8d))
* Meetings page with timeline viz, token bars, contribution formatting
([#788](#788))
([#904](#904))
([b207f46](b207f46))
* Messages page with threading, channel badges, sender indicators
([#787](#787))
([#903](#903))
([28293ad](28293ad))
* Org Chart force-directed view and drag-drop reassignment
([#872](#872),
[#873](#873))
([#912](#912))
([a68a938](a68a938))
* Org Chart page (living nodes, status, CRUD, department health)
([#870](#870))
([0acbdae](0acbdae))
* per-command flags for remaining commands, auto-behavior wiring,
help/discoverability
([#897](#897))
([3f7afa2](3f7afa2))
* Providers page with backend rework -- health, CRUD, subscription auth
([#893](#893))
([9f8dd98](9f8dd98))
* scaffold React + Vite + TypeScript + Tailwind project
([#799](#799))
([bd151aa](bd151aa))
* Settings page with search, dependency indicators, grouped rendering
([#784](#784))
([#902](#902))
([a7b9870](a7b9870))
* Setup Wizard rebuild with template comparison, cost estimator, theme
customization ([#879](#879))
([ae8b50b](ae8b50b))
* setup wizard UX -- template filters, card metadata, provider form
reuse ([#910](#910))
([7f04676](7f04676))
* setup wizard UX overhaul -- mode choice, step reorder, provider fixes
([#907](#907))
([ee964c4](ee964c4))
* structured ModelRequirement in template agent configs
([#795](#795))
([7433548](7433548))
* Task Board page (rich Kanban, filtering, dependency viz)
([#871](#871))
([04a19b0](04a19b0))


### Bug Fixes

* align frontend types with backend and debounce WS refetches
([#916](#916))
([134c11b](134c11b))
* auto-cleanup targets newly pulled images instead of old ones
([#884](#884))
([50e6591](50e6591))
* correct wipe backup-skip flow and harden error handling
([#808](#808))
([c05860f](c05860f))
* improve provider setup in wizard, subscription auth, dashboard bugs
([#914](#914))
([87bf8e6](87bf8e6))
* improve update channel detection and add config get command
([#814](#814))
([6b137f0](6b137f0))
* resolve all ESLint warnings, add zero-warnings enforcement
([#899](#899))
([079b46a](079b46a))
* subscription auth uses api_key, base URL optional for cloud providers
([#915](#915))
([f0098dd](f0098dd))


### Refactoring

* semantic analyzer cleanup -- shared filtering, concurrency, extraction
([#908](#908))
([81372bf](81372bf))


### Documentation

* brand identity and UX design system from
[#765](#765) exploration
([#804](#804))
([389a9f4](389a9f4))
* page structure and information architecture for v0.5.0 dashboard
([#809](#809))
([f8d6d4a](f8d6d4a))
* write UX design guidelines with WCAG-verified color system
([#816](#816))
([4a4594e](4a4594e))


### Tests

* add unit tests for agent hooks and page components
([#875](#875))
([#901](#901))
([1d81546](1d81546))


### CI/CD

* bump actions/deploy-pages from 4.0.5 to 5.0.0 in the major group
([#831](#831))
([01c19de](01c19de))
* bump astral-sh/setup-uv from 7.6.0 to 8.0.0 in
/.github/actions/setup-python-uv in the all group
([#920](#920))
([5f6ba54](5f6ba54))
* bump codecov/codecov-action from 5.5.3 to 6.0.0 in the major group
([#868](#868))
([f22a181](f22a181))
* bump github/codeql-action from 4.34.1 to 4.35.0 in the all group
([#883](#883))
([87a4890](87a4890))
* bump sigstore/cosign-installer from 4.1.0 to 4.1.1 in the
minor-and-patch group
([#830](#830))
([7a69050](7a69050))
* bump the all group with 3 updates
([#923](#923))
([ff27c8e](ff27c8e))
* bump wrangler from 4.76.0 to 4.77.0 in /.github in the minor-and-patch
group ([#822](#822))
([07d43eb](07d43eb))
* bump wrangler from 4.77.0 to 4.78.0 in /.github in the all group
([#882](#882))
([f84118d](f84118d))


### Maintenance

* add design system enforcement hook and component inventory
([#846](#846))
([15abc43](15abc43))
* add dev-only auth bypass for frontend testing
([#885](#885))
([6cdcd8a](6cdcd8a))
* add pre-push rebase check hook
([#855](#855))
([b637a04](b637a04))
* backend hardening -- eviction/size-caps and model validation
([#911](#911))
([81253d9](81253d9))
* bump axios from 1.13.6 to 1.14.0 in /web in the all group across 1
directory ([#922](#922))
([b1b0232](b1b0232))
* bump brace-expansion from 5.0.4 to 5.0.5 in /web
([#862](#862))
([ba4a565](ba4a565))
* bump eslint-plugin-react-refresh from 0.4.26 to 0.5.2 in /web
([#801](#801))
([7574bb5](7574bb5))
* bump faker from 40.11.0 to 40.11.1 in the minor-and-patch group
([#803](#803))
([14d322e](14d322e))
* bump https://github.com/astral-sh/ruff-pre-commit from v0.15.7 to
0.15.8 ([#864](#864))
([f52901e](f52901e))
* bump nginxinc/nginx-unprivileged from `6582a34` to `f99cc61` in
/docker/web in the all group
([#919](#919))
([df85e4f](df85e4f))
* bump nginxinc/nginx-unprivileged from `ccbac1a` to `6582a34` in
/docker/web ([#800](#800))
([f4e9450](f4e9450))
* bump node from `44bcbf4` to `71be405` in /docker/sandbox
([#827](#827))
([91bec67](91bec67))
* bump node from `5209bca` to `cf38e1f` in /docker/web
([#863](#863))
([66d6043](66d6043))
* bump picomatch in /site
([#842](#842))
([5f20bcc](5f20bcc))
* bump recharts 2-&gt;3 and @types/node 22-&gt;25 in /web
([#802](#802))
([a908800](a908800))
* Bump requests from 2.32.5 to 2.33.0
([#843](#843))
([41daf69](41daf69))
* bump smol-toml from 1.6.0 to 1.6.1 in /site
([#826](#826))
([3e5dbe4](3e5dbe4))
* bump the all group with 3 updates
([#921](#921))
([7bace0b](7bace0b))
* bump the minor-and-patch group across 1 directory with 2 updates
([#829](#829))
([93e611f](93e611f))
* bump the minor-and-patch group across 1 directory with 3 updates
([#841](#841))
([7010c8e](7010c8e))
* bump the minor-and-patch group across 1 directory with 3 updates
([#869](#869))
([548cee5](548cee5))
* bump the minor-and-patch group in /site with 2 updates
([#865](#865))
([9558101](9558101))
* bump the minor-and-patch group with 2 updates
([#867](#867))
([4830706](4830706))
* consolidate Dependabot groups to 1 PR per ecosystem
([06d2556](06d2556))
* consolidate Dependabot groups to 1 PR per ecosystem
([#881](#881))
([06d2556](06d2556))
* improve worktree skill with full dep sync and status enhancements
([#906](#906))
([772c625](772c625))
* remove Vue remnants and document framework decision
([#851](#851))
([bf2adf6](bf2adf6))
* update web dependencies and fix brace-expansion CVE
([#880](#880))
([a7a0ed6](a7a0ed6))
* upgrade to Storybook 10 and TypeScript 6
([#845](#845))
([52d95f2](52d95f2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant