Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
7652135
used default fallback provider and model if default are set (#8650)
lifeizhou-ap Apr 20, 2026
a7d78ee
feat: goose2 context window usage in chat input (#8613)
tellaho Apr 20, 2026
5b43b5f
fix(gym): isolate scenario Cargo projects from parent workspace (#8640)
kyledef Apr 20, 2026
4091869
chore(deps): bump thin-vec from 0.2.14 to 0.2.16 (#8561)
dependabot[bot] Apr 20, 2026
77542db
chore(deps): bump hono from 4.12.12 to 4.12.14 in /evals/open-model-g…
dependabot[bot] Apr 20, 2026
030de5d
Add dependabot config for pnpm workspace, cargo, and actions (#8660)
jh-block Apr 20, 2026
e953a49
chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.15 to 2.0.…
dependabot[bot] Apr 20, 2026
f2350f8
Reset ChatGPT Codex auth during OAuth setup (#8569)
vincenzopalazzo Apr 20, 2026
5205540
fix: append /chat/completions for prefixed v1 base URLs (#8521)
aravind4219 Apr 20, 2026
a789bc1
docs: add blog post about Mesh LLM provider option (#8655)
michaelneale Apr 20, 2026
0b3a70c
chore(deps): bump ncipollo/release-action from 1.20.0 to 1.21.0 (#8664)
dependabot[bot] Apr 20, 2026
17b1548
Add a goose2 release workflow (#8629)
jamadeo Apr 20, 2026
e74438b
refactor(providers): extract shared OAuth device-flow helper (#8619)
soilSpoon Apr 20, 2026
e81465c
fix(developer): run shell tool under bash/sh regardless of login shel…
jh-block Apr 20, 2026
2efa625
consistently use actions-rust-lang/setup-rust-toolchain (#8671)
jh-block Apr 20, 2026
5642e0b
feat(goose2): voice dictation via direct-ACP pattern (#8609)
tulsi-builder Apr 20, 2026
234dc3d
Add health score badge to README (#8677)
angiejones Apr 20, 2026
4952640
delete the goose2 migration plan prompt (#8678)
jamadeo Apr 20, 2026
3d58294
Remove unused import (#8676)
jh-block Apr 20, 2026
8eda6fd
overhaul provider inventory and agent/model selection (#8652)
baxen Apr 20, 2026
93299b5
handle full node paths in goose2 kill recipe (#8709)
morgmart Apr 21, 2026
b1235e7
Manage skills as sources over ACP (#8675)
jamadeo Apr 21, 2026
436e126
fix: run setup before dev and dev-debug in goose2 justfile (#8718)
matt2e Apr 21, 2026
70e12d9
fix: links in chat could not be opened (#8544)
matt2e Apr 21, 2026
cbf893c
feat(hooks): add Husky git hooks for ui/goose2 (#8577)
matt2e Apr 21, 2026
aa731a9
Stop load openai fast model for openapi compatible custom endpoint (#…
spikewang Apr 21, 2026
953fe96
fix(ui): correct grammar in apps view description (#8668) (#8679)
sunilkumarvalmiki Apr 21, 2026
2067a56
ci: declare and enforce MSRV of 1.91.1 (#8670)
jh-block Apr 21, 2026
dfc5b0b
consolidate provider ACP methods onto inventory (#8710)
baxen Apr 21, 2026
8f73ef9
feat: goose2 message bubble + action tray (#8720)
tellaho Apr 21, 2026
05af51f
docs: AGENTS.md section on goose2 desktop backend architecture (#8732)
alexhancock Apr 21, 2026
38941b1
merge goose-acp crate into goose (#8726)
jamadeo Apr 21, 2026
7325fbd
persist and reliably apply chat model selection (#8734)
morgmart Apr 21, 2026
ab0c40d
fix: add strict:false to Responses API tools and gpt-5.4 to known mod…
baxen Apr 21, 2026
23b3b3d
alexhancock/tui-improvements (#8736)
alexhancock Apr 22, 2026
7e2fb3e
improve goose2 agent management flows (#8737)
tulsi-builder Apr 22, 2026
469c74d
feat: extend goose2 context window ux with auto-compaction (#8721)
tellaho Apr 22, 2026
a7ccdd7
upgrade goose sdk and tui to be compatible with the latest agentclien…
lifeizhou-ap Apr 22, 2026
c8b339e
feat: associate threads with projects (#8745)
matt2e Apr 22, 2026
015b0d9
fix(providers/openai): accept streaming chunks with both reasoning fi…
capttrousers Apr 22, 2026
d18bb6e
refactor(providers): extract http_status module and rename handle_sta…
soilSpoon Apr 22, 2026
03f4bfa
fix(providers): handle missing delta field in streaming chunks (#8700)
sunilkumarvalmiki Apr 22, 2026
1d0f378
removed the specific code owner for documentation change (#8749)
lifeizhou-ap Apr 22, 2026
501dde5
Replace deprecated Claude ACP package links (#8625)
umago Apr 22, 2026
bdf5c43
Add /skills command (#8600)
umago Apr 22, 2026
37bd4e7
perf: split agent setup into staged phases to reduce startup blocking…
matt2e Apr 22, 2026
2bbf4dd
fix: removed hardcoded dependency of goose-acp-macro (#8753)
lifeizhou-ap Apr 22, 2026
04514c6
Feature/at agent mention (#8571)
DOsinga Apr 22, 2026
15cfd12
harden code review skill for async state and default-resolution bugs …
morgmart Apr 22, 2026
ee46794
feat: desktop notification when goose finishes a task (#8647)
Abhijay007 Apr 22, 2026
e7e5032
commands to acp+ migration: extensions management (#8733)
alexhancock Apr 22, 2026
4928ce5
fix: preprompt would show after loading session (#8744)
matt2e Apr 22, 2026
78eae06
feat: add Exa AI-powered search tool (#8487)
tgonzalezc5 Apr 23, 2026
092a40c
fix(goose-server): cache TLS cert to disk to avoid slow startup on fi…
treebird7 Apr 23, 2026
b8c3b83
chore(goose2): full width assistant message (#8760)
tellaho Apr 23, 2026
3fbe01d
chore(release): bump version to 1.32.0 (minor) (#8713)
github-actions[bot] Apr 23, 2026
18127f1
fix: Allow starting a new session in a project after creating one (#8…
matt2e Apr 23, 2026
5f3c63a
feat(cli): add --check flag to goose info for provider testing (#8289)
mvanhorn Apr 23, 2026
0b961f1
tui: do not build goose if connecting to a server (#8779)
alexhancock Apr 23, 2026
18e0668
feat(goose2): add cross-worktree kill support with running/kill-all r…
matt2e Apr 23, 2026
3d2d81e
hide disabled Add Skills button (#8782)
angiejones Apr 23, 2026
586fa2b
docs: add skills slash command (#8783)
angiejones Apr 23, 2026
5dd9f08
Dedupe and organize skills/sources (#8731)
jamadeo Apr 23, 2026
f58e27a
feat(acp): Align to new request patterns of ACP Streamable HTTP/WS tr…
alexhancock Apr 23, 2026
97671f3
Add more info to BUILDING_LINUX (#8789)
spikewang Apr 23, 2026
86afdea
feat: migrate session metadata storage from frontend overlay to backe…
matt2e Apr 24, 2026
f82dbc4
fix: add missing underscore prefix in updateWorkingDir method name (#…
matt2e Apr 24, 2026
f827af6
fix: use _meta instead of meta in newSession request (#8796)
matt2e Apr 24, 2026
e2bcea2
chore: check stale for draft pr (#8803)
lifeizhou-ap Apr 24, 2026
c9cfd2c
fix: only call cleanup when the pr is from same repo (#8799)
lifeizhou-ap Apr 24, 2026
8f16ec6
fix: removed failed provider test for deprecated providers (#8801)
lifeizhou-ap Apr 24, 2026
4065d44
Add NVIDIA provider, and improve declarative provider UX (#8798)
jh-block Apr 24, 2026
eb60770
refactor: make ACP server smaller (#8787)
alexhancock Apr 24, 2026
c6755d3
Port provider tests to typescript (#8237)
jamadeo Apr 24, 2026
910e01a
add a goose2 signed release flow (#8728)
jamadeo Apr 24, 2026
e790d37
updates: release 0.19.0 of the tui/sdk/etc (#8806)
alexhancock Apr 24, 2026
097e1bc
fix(ci): prevent flaky smoke test timeouts from failing the build (#8…
michaelneale Apr 24, 2026
df302d7
Refresh canonical model metadata from models.dev (#8838)
angiejones Apr 25, 2026
d56fd5a
feat(skills): support MCP-served Agent Skills per the skills-over-MCP…
olaservo Apr 22, 2026
b7e207e
test(skills): e2e MCP skill discovery+load against github-mcp-server
olaservo Apr 22, 2026
31b2711
feat(skills): emit Supporting Files block for MCP load_skill
olaservo Apr 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
33 changes: 25 additions & 8 deletions .agents/skills/code-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,16 @@ You are a senior engineer conducting a thorough code review. Review **only the l
- **AnimatePresence**: Is it used properly with unique keys for dialog/modal transitions?
- **Reduced Motion**: Is `useReducedMotion()` respected for accessibility?

### Async State, Defaults & Persistence
- **Async Source of Truth**: During async provider/model/session mutations, does UI/session/localStorage state update only after the backend accepts the change? If the UI updates optimistically, is there an explicit rollback path?
- **UI/Backend Drift**: Could the UI show provider/model/project/persona X while the backend is still on Y after a failed mutation, delayed prepare, or pending-to-real session handoff?
- **Requested vs Fallback Authority**: Do explicit user or caller selections stay authoritative over sticky defaults, saved preferences, aliases, or fallback resolution?
- **Dependent State Invalidation**: When a parent selection changes (provider/project/persona/workspace/etc.), are dependent values like `modelId`, `modelName`, defaults, or cached labels cleared or recomputed so stale state does not linger?
- **Persisted Preference Validation**: Are stored selections validated against current inventory/capabilities before reuse, and do stale values fail soft instead of breaking creation flows?
- **Compatibility of Fallbacks**: Are default or sticky selections guaranteed to remain compatible with the active concrete provider/backend, instead of leaking across providers?
- **Best-Effort Lookups**: Do inventory/config/default-resolution lookups degrade gracefully on transient failure, or can they incorrectly block a primary flow that should still work with a safe fallback?
- **Draft/Home/Handoff Paths**: If the product has draft, Home, pending, or pre-created sessions, did you review those handoff paths separately from the already-active session path?

### General Code Quality
- **Error Handling**: Are errors handled gracefully with user-friendly messages?
- **Loading States**: Are loading states shown during async operations?
Expand All @@ -104,13 +114,18 @@ You are a senior engineer conducting a thorough code review. Review **only the l

### Step 0: Run Quality Checks

Before reading any code, run the project's CI gate to establish a baseline:
Before reading any code, run the project's CI gate to establish a baseline. Use **check-only** commands so the baseline never mutates the working tree — otherwise auto-formatters can introduce unstaged diffs and you'll end up reviewing formatter output instead of the author's actual changes.

Avoid `just check-everything` as the baseline in this repo: that recipe runs `cargo fmt --all` in write mode and will modify the working tree. Run the non-mutating equivalents instead:

```bash
just ci
cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
(cd ui/desktop && pnpm run lint:check)
./scripts/check-openapi-schema.sh
```

This runs: `pnpm check` (Biome lint/format + file sizes), `pnpm typecheck`, `just clippy` (Rust linting), `pnpm test`, `pnpm build`, and `just tauri-check` (Rust type checking).
If the project has a stronger pre-push or CI gate than this helper set, run that fuller gate when the review is meant to be PR-ready, but only after confirming it is also non-mutating (or run it from a clean stash). In this repo, targeted tests for the changed area plus the pre-push checks are often the practical follow-up.

Report the results as pass/fail. Any failures are automatically **P0** issues and should appear at the top of the findings list. Do not skip this step even if the user only wants a quick review.

Expand All @@ -120,7 +135,8 @@ For each file in the list:

1. Run `git diff main...HEAD -- <file>` to get the exact lines that changed
2. Review **only those changed lines** against the Review Checklist — do not flag issues in unchanged code
3. Note the file path and line numbers from the diff output for each issue found
3. For stateful UI or async flow changes, trace the full path end to end: user selection -> local/session state update -> persistence -> backend prepare/set/update call -> failure/rollback path
4. Note the file path and line numbers from the diff output for each issue found

### Step 2: Categorize Issues

Expand Down Expand Up @@ -152,16 +168,17 @@ After reviewing all files, provide:

### Step 3b: Self-Check

Before presenting findings to the user, silently review the issue list two more times:
Before presenting findings to the user, silently review the issue list three times:

1. **Pass 1**: For each issue, ask — is this genuinely a problem, or could it be intentional/acceptable? Remove false positives.
2. **Pass 2**: For each remaining issue, ask — does the recommended fix actually improve the code, or is it a matter of preference?
3. **Pass 3**: For async state/default-resolution issues, ask — can the UI, persisted state, and backend ever disagree after a failure, fallback, or session handoff?

After both passes, tag each surviving issue as one of:
After these passes, tag each surviving issue as one of:
- **[Must Fix]** — clear violation, will likely get flagged in PR review
- **[Your Call]** — valid concern but may be intentional or a reasonable tradeoff (e.g. stepping outside the design system for a specific reason). Present it but let the user decide.

Only present issues that survived both passes.
Only present issues that survived these passes.

### Step 4: Fix Issues

Expand Down Expand Up @@ -189,7 +206,7 @@ Once all issues are fixed, display:

**✅ Code review complete! All issues have been addressed.**

Your code is ready to commit and push. Lefthook will run the full CI gate (`just ci`) automatically when you push.
Your code is ready to commit and push. Lefthook and CI will run the repo's configured gates when you push.

Next steps: generate a PR summary that explains the intent of this change, what files were modified and why, and how to verify the changes work.

Expand Down
6 changes: 0 additions & 6 deletions .github/CODEOWNERS

This file was deleted.

33 changes: 33 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
version: 2
updates:
# pnpm workspace for the UI (desktop, acp, text, sdk, goose-binary/*, goose2).
# Point at the workspace ROOT where pnpm-lock.yaml lives so Dependabot updates
# both the child package.json AND ui/pnpm-lock.yaml in one PR.
- package-ecosystem: "npm"
directory: "/ui"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
groups:
ui-minor-and-patch:
update-types:
- "minor"
- "patch"

# Cargo workspace at the repo root.
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
groups:
cargo-minor-and-patch:
update-types:
- "minor"
- "patch"

# GitHub Actions used by workflows in .github/workflows.
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
26 changes: 26 additions & 0 deletions .github/workflows/bundle-goose2-manual.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: "Manual Goose 2 Bundle (Unsigned)"

on:
workflow_dispatch:
inputs:
branch:
description: "Branch name to bundle app from"
required: true
type: string
cli-run-id:
description: "Run ID of a build-cli workflow to pull the goose binary from (optional, builds from source if empty)"
required: false
type: string
default: ""

jobs:
bundle-goose2:
uses: ./.github/workflows/bundle-goose2.yml
permissions:
id-token: write
contents: read
actions: read
with:
signing: false
ref: ${{ inputs.branch }}
cli-run-id: ${{ inputs.cli-run-id }}
Loading
Loading