Skip to content

Release v0.9.0#553

Merged
bradygaster merged 146 commits intomainfrom
dev
Mar 23, 2026
Merged

Release v0.9.0#553
bradygaster merged 146 commits intomainfrom
dev

Conversation

@bradygaster
Copy link
Copy Markdown
Owner

v0.9.0 release — Personal Squad, Worktree Spawning, Machine Capability Discovery, Cooperative Rate Limiting, Economy Mode, and 40+ improvements. See CHANGELOG.md for full details.

bradygaster and others added 30 commits March 7, 2026 12:05
… merged

Session: 2026-03-07T20-03-20Z-v0821-release
Requested by: Spawn manifest (release coordination)

Changes:
- Logged orchestration outputs for Kobayashi, Hockney, McManus, Rabin
- Logged session summary: v0.8.21 release complete (3,768 tests passing, docs deployed)
- Merged decisions from inbox: npm publish CI directive + Kobayashi's GitHub Actions automation
- Propagated cross-agent updates to affected agents' history.md (Kobayashi, Hockney, McManus, Rabin)

Directives:
- GitHub Actions (publish.yml) is now authoritative for npm publishing; local npm publish deprecated
- Brady must add NPM_TOKEN secret to GitHub repo settings to enable CI-based publishing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
# Conflicts:
#	package.json
#	packages/squad-cli/package.json
#	packages/squad-sdk/package.json
# Conflicts:
#	.squad/agents/_alumni/kobayashi/history.md
Add the required changeset for the README docs fix.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When squad init runs inside a subdirectory of a parent git repo,
copilot resolves .github/agents/ from the git root (parent), not
from CWD. This makes the Squad agent invisible to copilot.

Added detectParentGitRepo() to init.ts that:
- Compares CWD to git rev-parse --show-toplevel
- Warns the user if they differ
- Auto-runs git init to create a proper repo boundary

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Session: 2026-03-13T17-53-reskill
Requested by: squad-coordinator

Changes:
- Logged reskill session (Verbal skills, charter trim, history hygiene)
- Verbal created 3 skills: reskill, agent-collaboration, ci-validation-gates
- Keaton trimmed all 22 charters (25.7KB savings, 42.2% reduction)
- Hockney deduplicated 6 agent histories (204.5KB savings, 84.8% reduction)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Session: 2026-03-13T20-28-00Z-issue-triage
Agent: Keaton (Lead)

Changes:
- Logged issue triage session (47 issues processed)
- Remapped 19 Apollo 13 labels to Usual Suspects cast
- Triaged 26 unlabeled issues
- Closed 2 duplicate issues

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds custom universe casting from contributor boclifton-MSFT.
Users can define custom character lists in .squad-templates/casting/.
Replaces real-name examples with fictional ones per review feedback.

Co-authored-by: boclifton-MSFT <102168009+boclifton-MSFT@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Updates README.md links to point to published docs site instead of local paths.

Co-authored-by: Matthew Corven <27839633+matthewcorven@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds prominent recommendation to use 'copilot --yolo' in Quick Start guide to avoid approval prompts for each tool call.

Co-authored-by: Dina Berry <41597107+diberry@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds mandatory scannability framework for content review. Defines when to use paragraphs, bullets, tables, and callouts. Includes decision test for format selection.

Co-authored-by: Dina Berry <41597107+diberry@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…346)

Replaces hardcoded ~/.squad/ references with platform-aware descriptions. The SDK correctly resolves personal squad paths via resolveGlobalSquadPath().

Co-authored-by: James Sturtevant <648372+jsturtevant@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Updated history with PR merge pattern learnings and base branch handling strategies.
Co-authored-by: Dina Berry <diberry@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Dina Berry <diberry@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: James Sturtevant <jsturtevant@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Dina Berry <diberry@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
New docs pages derived from public blog post analysis:
- scenarios/ralph-operations.md: outer loop deployment, mutex, logging, alerting
- scenarios/proactive-communication.md: two-way Teams webhooks and scanning
- features/issue-templates.md: squad-aware issue templates, routing labels
- features/reviewer-protocol.md: trust levels section (full/selective/self-managing)
- test/docs-build.test.ts: assertions updated for new pages

All content follows Microsoft Style Guide. No individual repo names — aggregate
references only per owner privacy directive.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove ralph-operations.md and proactive-communication.md — both document
infrastructure around Squad (webhooks, WorkIQ, deployment patterns) rather
than Squad itself. Content moves to Squad IRL repo.

Reframe issue-templates.md to clarify GitHub Issue Templates are a platform
feature configured for Squad routing, not a Squad feature.

Litmus test applied: if Squad doesn't ship the code/config, it belongs in IRL.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Created comprehensive documentation for working across GitHub personal
accounts and GitHub Enterprise Managed Users (EMU):

- New scenario page: scenarios/cross-org-auth.md
  - Three solution approaches: gh auth switch, Copilot instructions,
    Squad skill pattern
  - Git credential helper configuration
  - Common error messages and verification steps

- Updated troubleshooting.md with cross-org auth section
- Updated enterprise-platforms.md authentication section with cross-ref
- Added navigation entry for Cross-Org Auth scenario
- Updated test assertions in docs-build.test.ts

Follows Microsoft Style Guide (sentence-case headings, active voice).
Includes practical examples and cross-references to related pages.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixed test assertion arrays to match actual files on disk:
- EXPECTED_SCENARIOS: expanded from 7 to 25 entries
- EXPECTED_FEATURES: added new array with 32 entries

This resolves the sync issue identified in PR #331 review where
test assertions were out of sync with docs/src/content/docs/ structure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ntent triage, remote access proposal

Session: 2026-03-11T01-27-57-post-work-orchestration
Agents: FIDO (Quality Owner), Flight (Lead)

Changes:
- Orchestration logs for FIDO (test assertion sync fix, commit 6599db6) and Flight (content triage skill)
- Merged 6 decisions from inbox to decisions.md
- Consolidated boundary heuristic: "Squad Ships It" (docs vs IRL) across content-triage skill and PR #331 review
- Added content-triage workflow for external content integration
- Added phased rollout proposal for remote Squad access (Discussions → Copilot → Chat)
- Added PR trust levels spectrum (full/selective/self-managing)
- Cross-agent updates: FIDO, Flight, PAO history.md sync; boundary heuristic shared

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…dlers

Includes:
- SkillScriptLoader with handler types
- Replace CONCERN_TOOL_MAP with directory scan
- OTel instrumentation for skill handlers
- resolveSkillPath DRY refactor
- backendConfig security docs

Co-authored-by: Emmitt <1337ERJ1337@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove incorrect lazyRunShell() call in cli-entry.ts (use runShell directly)
- Remove undefined maxVisible prop from MessageStream component

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: spboyer <spboyer@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- docs-build.test.ts: Add EXPECTED_CONCEPTS array for new concepts/ docs
  Added 5 concept files (github-workflow, memory-and-knowledge, parallel-work,
  portability, your-team) and included them in HTML generation test

- shell-metrics.test.ts: Clear OTEL_EXPORTER_OTLP_ENDPOINT in disabled test
  enableShellMetrics() returns true if either SQUAD_TELEMETRY=1 OR
  OTEL_EXPORTER_OTLP_ENDPOINT is set. Test now clears both to verify
  disabled state

- cli-packaging-smoke.test.ts: Remove non-existent commands
  Removed 'subsquads', 'upstream', and 'workstreams' commands that were
  removed in recent PRs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bradygaster and others added 27 commits March 22, 2026 21:06
…543)

Create the missing issue-lifecycle template document referenced by
squad.agent.md at lines 1097 and 1103. Documents the complete
issue→branch→PR→merge lifecycle across GitHub, Azure DevOps, and
Planner platforms.

Includes:
- Platform-specific issue state mappings
- Branch naming conventions (squad/{issue-number}-{slug})
- PR creation and review workflows
- Ralph's role in issue lifecycle monitoring
- Spawn prompt additions for issue context
- Merge commands and cleanup procedures
- Common lifecycle patterns and anti-patterns

This template provides the reference guide that agents use when
working on repository issues, from initial assignment through
PR merge and cleanup.

Closes #527

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Test resolvePersonalSquadDir() with kill switch and dir detection
- Test resolvePersonalAgents() discovery and metadata parsing
- Test mergeSessionCast() dedup and precedence rules
- Test ensureSquadPathTriple() path validation for triple-root mode
- Test Ghost Protocol enforcement
- Test CLI personal commands (init, list, add, remove)

Added package.json exports for:
- @bradygaster/squad-sdk/config/agent-source
- @bradygaster/squad-cli/commands/personal
- @bradygaster/squad-cli/commands/cast

Fixed help text formatting to stay within 80-char UX gate.

PR #4 of #508 implementation plan.
All 27 tests pass. Full test suite: 4818 tests passing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add pre-spawn worktree setup logic to coordinator prompt
- Add WORKTREE_PATH and WORKTREE_MODE to spawn templates
- Add worktree lifecycle management section
- Document worktree reuse and dependency management

Closes #529

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…518)

* feat: cooperative rate limiting with predictive circuit breaker (#515)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: TypeScript strict null checks and add missing SDK export

- Add non-null assertions for array indexing in PredictiveCircuitBreaker
- Add ./ralph/rate-limiting export entry to SDK package.json

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: split canUseQuota into pure read + consumeQuota, fix JSDoc

- canUseQuota() is now a pure read — returns boolean, no side effects
- consumeQuota() handles stale lease reclamation and usage tracking
- Correct JSDoc: prediction uses first-to-last delta rate, not linear regression
- Update tests: add consumeQuota test suite, fix canUseQuota purity assertions

Fixes Q review findings on PR #518: side-effect bug in canUseQuota()
and inaccurate 'linear regression' JSDoc claim.

* fix: use subpath imports in rate-limiting tests, remove unused writeFile import

- Changed test import from relative path to @bradygaster/squad-sdk/ralph/rate-limiting
- Removed unused writeFile import from rate-limiting.ts

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: bradygaster <bradyg@microsoft.com>
* docs: KEDA external scaler template for autoscaling (#516)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: remove stray test/capabilities.test.ts (belongs to PR #520)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: bradygaster <bradyg@microsoft.com>
* feat: machine capability discovery & needs:* label routing (#514)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: machine capability discovery & needs:* label routing (#514)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: revert package-lock.json engine requirement to >=20.0.0

The lockfile had been regenerated with >=22.5.0 engine requirements,
which is a breaking change. Reverting to keep Node >=20 compatibility.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: bradygaster <bradyg@microsoft.com>
10 fixes addressing 13 upgrade gaps found during 3-agent audit. Cross-tested across 23 repos (244/245 checks passing, 99.6%).

Fixes #544

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix broken link in cli.md: getting-started/index.md → guide.md
- Add TELMU and Automator to cspell dictionary
- Increase validateWorkItemType case-insensitive test timeout to 10s
  (execFileSync calls az CLI twice with 3s timeout each, exceeding 5s default)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Anonymized writeup of squad fanning out 9 agents across 23 repos
(244/245 checks passing) to validate the upgrade path before release.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Propagate canonical template changes from .squad-templates/ to all
target directories (templates/, packages/squad-cli/templates/,
packages/squad-sdk/templates/, .github/agents/).

Includes new skill templates, casting Futurama universe,
rate-limiting/circuit-breaker docs, and personal squad coordinator
section in squad.agent.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The patch-esm-imports script was skipping when any exports field existed,
even if it was incomplete (missing ./node.js). Now checks for the critical
./node.js subpath specifically before skipping.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…t coverage (#549)

- Footer now shows "Privacy scrub applied" when email scrub ran,
  "Preserves user state" otherwise (fixes contradictory messaging)
- ensureGitattributes gracefully warns on EPERM instead of crashing
- ensureGitignore skips entries already covered by parent paths

Closes #549

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Orchestration log: EECOM #549 privacy scrub fix (PR #551)
- Orchestration log: Flight community PR batch review (5 PRs reviewed)
- Session log: 2026-03-23T06-50-00Z PR review + #549 consolidation
- Merged decisions from inbox:
  * Context-aware upgrade footer message (#549)
  * Community PR batch review outcomes (diberry, tamirdresher, JasonYeYuhe)
  * Tamirdresher PR series guidance
- Updated agent histories with session outcomes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1. @astrojs/sitemap — add integration, sitemap-index.xml generated on build
2. Code block copy button — global JS in BaseLayout, clipboard API, Tailwind styled
3. Twitter Card — change to summary_large_image in BaseLayout
4. Edit this page — GitHub edit link in DocsLayout footer
5. robots.txt — create docs/public/robots.txt with Allow: /, Sitemap ref
6. Table of Contents — TableOfContents.astro client-side component, right column in DocsLayout
7. @astrojs/rss — install package, create src/pages/rss.xml.js from blog collection
8. Next/Prev navigation — compute from NAV_SECTIONS in [...slug].astro, render in DocsLayout
9. Richer frontmatter — add tags, author, updatedAt, status to docs + blog schemas; display updatedAt in DocsLayout
10. View Transitions — import ViewTransitions from astro:transitions in BaseLayout

Tests: docs/tests/astro-features.test.mjs — 19/19 pass (source + build-output checks)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
)

* test(worktree): add regression guard for .git file vs directory (#521)

Adds test/worktree.test.ts — 7 tests covering the two root causes
identified in Flight's worktree investigation:

resolveSquad() (packages/squad-sdk/src/resolution.ts)
- Stops at a .git FILE as if it were a repo root boundary
- Should fall back to \git worktree list --porcelain\ to find the
  main checkout, then return its .squad/

detectSquadDir() (packages/squad-cli/src/cli/core/detect-squad-dir.ts)
- Returns worktree/.squad (non-existent) when called from a worktree
- Should use the same worktree fallback to find the main checkout

4 tests FAIL on current code (proving the bugs).
3 tests PASS as positive controls.
All tests will PASS once the fixes described in the investigation doc
are applied.

Also exposes detect-squad-dir via the CLI package exports so it can be
imported by tests without reaching into dist/ directly.

Requested by: Dina
Investigation by: Flight (Keaton)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(#521): worktree-aware resolution in SDK and CLI

resolveSquad() and findSquadDir() in packages/squad-sdk/src/resolution.ts
now distinguish .git as a directory (real repo root) from .git as a file
(git worktree pointer). When .git is a file, the gitdir: pointer is parsed
to derive the main checkout path, and .squad/ is checked there as a fallback
(main-checkout strategy). Worktree-local .squad/ continues to take priority.

detectSquadDir() in packages/squad-cli/src/cli/core/detect-squad-dir.ts
gains the same worktree fallback via a new exported helper
resolveWorktreeMainCheckout(). All 8 CLI commands that call detectSquadDir
now transparently find the main checkout's .squad/ when running from a
worktree root.

squad init gains an explicit worktree guard: when running from a worktree
that already has .squad/ in the main checkout, the user is prompted to
choose between shared strategy (use main checkout, no files created) and
worktree-local strategy (scaffold .squad/ in the worktree). Non-interactive
sessions default to shared to prevent silent duplicate creation.

Three new tests in test/resolution.test.ts cover the main-checkout fallback,
worktree-local priority, and the full walk-up scenario.

Closes #521

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(worktree-tests): remove dead child_process mock, fix gitdir paths, add statSync guard

- Remove vi.mock('child_process') and all helpers — implementation reads
  .git via fs.readFileSync, never calls child_process; the mock was dead
  code that gave false confidence

- Fix gitdir in all worktree test fixtures:
  '../../.git/worktrees/feature-521' resolved above the temp dir;
  corrected to '../main/.git/worktrees/feature-521' which resolves to
  tmp/main/.git/worktrees/feature-521 as expected

- Create main/.git/worktrees/feature-521/ directory in each fixture so
  the real directory structure matches the gitdir pointer

- Add statSync guard to getMainWorktreePath() (resolution.ts) and
  resolveWorktreeMainCheckout() (detect-squad-dir.ts): verify that
  mainCheckout/.git exists and is a directory before trusting it; guards
  against crafted .git files that redirect Squad to attacker-controlled paths

- Add two statSync guard tests: resolveSquad() and detectSquadDir() both
  return null/fallback (not crash) when gitdir points to a non-existent path

All 9 worktree regression tests pass.

Fixes PR #523 blockers as requested by Dina.
Working as FIDO (Quality Owner)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace npx @bradygaster/squad-cli with squad (global install)
- Remove npx alternatives and stale migration notes
- Remove deprecated 'npx github:bradygaster/squad' hang troubleshooting section
- Update insider-program.md to use npm install -g @bradygaster/squad-cli@insider
- Audit 'agency' usage — all hits are MIT attribution for agency-agents (keep)
- Fix cli-entry.ts example: agency copilot -> gh copilot

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add dedicated "Upgrading" section with two-step process
- Move SDK deep-dive (custom tools, hooks, Ralph API) to docs pointer
- README was 512 lines, now ~300

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Document Personal Squad, Worktree Spawning, Machine Capability Discovery
- Explain Cooperative Rate Limiting (RAAS traffic-light pattern)
- Cover Economy Mode, Auto-Wired Telemetry, Upgrade Path fixes
- Include docs refresh highlights and community contributions
- Format: Feature sections with code examples, callout boxes, quick stats
- No breaking changes; all features are opt-in
- Upgrading section points to full upgrade guide
- Community attribution: diberry, wiisaacs, williamhallatt

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The ensureGitattributes catch block only handled EPERM (Windows) but
Linux CI runners throw EACCES for read-only files. Now handles both.
Also adds CUDA and RAAS to cspell.json for the v0.9.0 blog post.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster merged commit d589ac6 into main Mar 23, 2026
1 of 2 checks passed
chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
Session: 2026-02-27T23-18-55Z-repo-assessment
Requested by: Scribe

Changes:
- Logged orchestration for Kobayashi (branch cleanup, 57 refs pruned)
- Logged orchestration for Keaton (full repo assessment, replatform readiness)
- Logged session: full repo assessment with concrete timeline
- Merged 5 decisions from inbox to decisions.md (deduplicated)
- Cleared decisions/inbox/ directory

**Merged decisions:**
- Fenster: Ghost command aliasing strategy
- Fenster: Per-command --help/-h intercept-before-dispatch pattern
- Keaton: Replatform readiness assessment (APPROVE launch, contingent on bradygaster#532)
- Kovash: REPL cancellation and configurable timeout
- Saul: Shell observability metrics design

**Deduplication:** No exact duplicates found. All decisions preserved.

**Cross-agent impact:**
- Keaton's replatform decision affects all agents: v1 public alpha approved for Feb 28-Mar 1 launch
- Timeline: Close bradygaster#532 (dogfood), merge bradygaster#552 (Ralph triage), ship v0.8.5.1 public alpha
- Wave E queued: bradygaster#553 (personal consult), bradygaster#547 (remote control), bradygaster#542 (board automation)
chrislomonico pushed a commit to clomonico/squad that referenced this pull request Mar 26, 2026
* Add personal squad consult mode

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add personal squad consult mode

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>

* Address PR review: align PRD with existing codebase patterns

- Use SquadDirConfig (resolution.ts) instead of SquadConfig (runtime config)
- Replace hardcoded ~/.squad/ with resolveGlobalSquadPath() throughout
- Use cli-entry.ts function pattern instead of commander
- Fix .git/info/exclude to use git rev-parse for worktree/submodule support
- Update config.json schema to include version/projectKey per SquadDirConfig
- Wire consult/extract as runConsult/runExtract functions

---------

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@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.

10 participants