Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
525 commits
Select commit Hold shift + click to select a range
22418d6
fix(ui): replace children dep with ResizeObserver for scroll-area aut…
bioinfornatics Feb 19, 2026
71c2eef
fix(ui): split useRegisterSession into register/update effects to pre…
bioinfornatics Feb 19, 2026
652f97b
fix(ui): stabilize ReasoningDetailPanel to prevent render loops
bioinfornatics Feb 19, 2026
e756cbd
fix(ui): stabilize ToolCallWithResponse and TooltipWrapper to prevent…
bioinfornatics Feb 19, 2026
c68d186
fix: break render loop in ReasoningDetailContext and WorkBlockIndicator
bioinfornatics Feb 19, 2026
58e62c9
fix: keep all messages collapsed in work block during multi-message s…
bioinfornatics Feb 19, 2026
bad522a
fix: add root-level TooltipProvider to prevent 'Tooltip must be used …
bioinfornatics Feb 19, 2026
7ba839a
fix: one-liner shows tool description instead of raw text; suppress t…
bioinfornatics Feb 19, 2026
28e5ca5
enhance: one-liner shows assistant's thinking intent, not tool mechanics
bioinfornatics Feb 19, 2026
f3b571a
fix: stabilize one-liner with debounce during streaming
bioinfornatics Feb 19, 2026
f73b12a
fix: simplify one-liner to tool-call-only (no streaming text)
bioinfornatics Feb 19, 2026
6571edf
refactor: design system atoms + rename Work Block β†’ Activity
bioinfornatics Feb 19, 2026
f5b3797
fix: show agent/mode badge only when agent changes between work blocks
bioinfornatics Feb 19, 2026
92e4703
fix: hide routing badges in activity side panel
bioinfornatics Feb 19, 2026
924a183
feat: compact activity panel with ActivityStep molecule
bioinfornatics Feb 19, 2026
79a7332
fix: skip partial streaming text in activity panel to prevent flickering
bioinfornatics Feb 19, 2026
da45779
feat(ui): diagnostic log parser + enhanced activity panel with expand…
bioinfornatics Feb 19, 2026
15e7c6c
fix: streaming text accumulation and work block one-liner
bioinfornatics Feb 20, 2026
f0622d6
feat: progressive streaming - show text accumulating in real-time dur…
bioinfornatics Feb 20, 2026
756a60c
fix: chat content hidden under input bar and activity indicator posit…
bioinfornatics Feb 20, 2026
78849c8
fix: reduce memory pressure in chat streaming
bioinfornatics Feb 20, 2026
bfd8518
fix: hidden user messages (userVisible=false) no longer break work bl…
bioinfornatics Feb 20, 2026
51f0c07
feat: integrate json-render for inline visual components in chat
bioinfornatics Feb 20, 2026
8c6462e
fix: apps extension provider not available - share provider mutex
bioinfornatics Feb 20, 2026
7133bad
feat: add json-render-visual built-in skill for inline visual components
bioinfornatics Feb 20, 2026
b2bd406
feat: add decision guidance for apps vs json-render visual output
bioinfornatics Feb 20, 2026
06cafdb
feat: add apps extension instructions with json-render routing guidance
bioinfornatics Feb 20, 2026
a754b07
fix: regex for json-render language detection in code blocks
bioinfornatics Feb 20, 2026
c60dd92
fix: convert nested json-render spec to flat format for Renderer
bioinfornatics Feb 20, 2026
aa6e5f3
chore: organize project root β€” move configs to observability/ and rec…
bioinfornatics Feb 20, 2026
0c6c3ea
feat: add genui platform extension for inline visual component rendering
bioinfornatics Feb 20, 2026
906e675
feat: phase 2 - JSONL streaming, catalog prompt injection, and genui …
bioinfornatics Feb 20, 2026
031acd2
fix: inject genui catalog prompt via get_moim for Code Mode support
bioinfornatics Feb 20, 2026
20f0712
fix: adapt shadcn components for json-render Renderer prop spreading
bioinfornatics Feb 20, 2026
87a2202
Test json-render pipeline + fix adaptComponents prop bridging
bioinfornatics Feb 21, 2026
c270da9
fix(ui): add json-render streaming protection and malformed JSONL rec…
bioinfornatics Feb 21, 2026
2f63c6f
feat(genui): add design guidelines to catalog prompt for beautiful UI…
bioinfornatics Feb 21, 2026
431fba5
refactor(ui): move UserAvatarMenu from absolute-positioned top-right …
bioinfornatics Feb 21, 2026
8f2282a
style(ui): apply biome formatting to json-render and generativeSpec f…
bioinfornatics Feb 21, 2026
6b9341c
fix(ui): keep json-render blocks on System 1 renderer (33 components)
bioinfornatics Feb 21, 2026
634e750
refactor(ui): converge rendering systems β€” merge shadcn + goose into …
bioinfornatics Feb 21, 2026
8305abb
refactor(ui): migrate goose-components from raw HTML to DS atoms/mole…
bioinfornatics Feb 21, 2026
4e0b439
feat(ui): create 5 DS atoms (Table, Alert, Progress, NativeSelect, Co…
bioinfornatics Feb 21, 2026
46c1f22
style(ui): replace hardcoded Tailwind colors with DS semantic tokens
bioinfornatics Feb 21, 2026
389f0e7
feat(ui): add Chart component (bar/line/area/pie) to DS and genUI reg…
bioinfornatics Feb 21, 2026
18b8ee9
feat(ui): add Chart to goose-renderer prompt instructions
bioinfornatics Feb 21, 2026
90c52a8
fix(ui): resolve MaxListenersExceededWarning for add-extension IPC
bioinfornatics Feb 21, 2026
c98192e
feat(ui): add OpenRouter pricing fallback for model cost tracking
bioinfornatics Feb 21, 2026
e906547
fix(ui): improve genUI density, reduce chart height, add lazy rendering
bioinfornatics Feb 21, 2026
f83cb8c
fix(ui): replace hardcoded colors in Badge with DS semantic tokens
bioinfornatics Feb 21, 2026
24e5dfb
fix(ui): skip server pricing endpoint after first 404 to reduce conso…
bioinfornatics Feb 21, 2026
296b6c2
test(ui): add end-to-end ComponentRegistry tests for all 45 components
bioinfornatics Feb 21, 2026
fecaeb0
fix(ui): reset chat state when active session is deleted
bioinfornatics Feb 21, 2026
ed641ce
fix(ui): unique table row keys + deduplicate pricing server calls
bioinfornatics Feb 21, 2026
bba449b
fix(ui): add color contrast/spacing rules to genUI prompt, prevent ch…
bioinfornatics Feb 21, 2026
b93bdbf
feat(genui): add visual quality rules to MOIM for better dashboard re…
bioinfornatics Feb 21, 2026
480044f
feat(agents): add dedicated genui mode for data visualization
bioinfornatics Feb 21, 2026
753745e
style(agents): use positive framing in mode when_to_use descriptions
bioinfornatics Feb 21, 2026
55e44ad
fix(prompts): fix genui.md - remove broken code fence, use positive f…
bioinfornatics Feb 21, 2026
644c286
genui: theme-aware chart palette + a11y labels
bioinfornatics Feb 21, 2026
be445e2
genui: align catalog source + fix analytics tooltip
bioinfornatics Feb 21, 2026
eafe76d
ui: fix cost tracking delta attribution
bioinfornatics Feb 21, 2026
2174d31
ui: cleanup text animator resources
bioinfornatics Feb 21, 2026
6d6bfa1
ui: fix ChatInput effects + remove queue storage
bioinfornatics Feb 21, 2026
4627bb7
ui: a11y sortable analytics table headers
bioinfornatics Feb 22, 2026
40f3a6f
ui: a11y analytics tabs pattern
bioinfornatics Feb 22, 2026
c6dabb5
ui: deprecate generative registry (use json-render registry)
bioinfornatics Feb 22, 2026
892f7f2
ui: a11y progress + table atoms
bioinfornatics Feb 22, 2026
67552b2
ui: a11y chart figure semantics + pie key guard
bioinfornatics Feb 22, 2026
0b3e3e6
chore: clean up diagnostics dir
bioinfornatics Feb 22, 2026
0d0f9b8
ui: reduce noisy logs + deprecate generative registry
bioinfornatics Feb 22, 2026
ffffa17
ui: fix find listener leak + dialog a11y + pricing fallback
bioinfornatics Feb 22, 2026
73c5b0c
ui: render raw json-render + dialog cleanup
bioinfornatics Feb 22, 2026
8d87df7
ui: fix table column keys
bioinfornatics Feb 22, 2026
1b23d49
goose: enforce sqlite foreign keys + avoid fk races
bioinfornatics Feb 22, 2026
8f03fbc
ui: detect bare json-render specs
bioinfornatics Feb 22, 2026
6f4d2e0
genui: require json-render fenced output
bioinfornatics Feb 22, 2026
6416fe7
genui: add structured jsonRenderSpec message parts
bioinfornatics Feb 22, 2026
c703749
genui: allow unfenced json-render specs
bioinfornatics Feb 22, 2026
1c4a3d5
docs: relax json-render fencing guidance
bioinfornatics Feb 22, 2026
de2a616
prompts: factor genui json-render output contract
bioinfornatics Feb 22, 2026
456b623
test: add genui contract consistency checks
bioinfornatics Feb 22, 2026
5a5baa0
ui: prefer shadcn json-render Table
bioinfornatics Feb 22, 2026
93f887a
ui: fix Chart rendering in grid layouts
bioinfornatics Feb 22, 2026
8a2a305
orchestrator: route dashboards to genui
bioinfornatics Feb 23, 2026
6d402b7
orchestrator: use dynamic catalog for mode selection
bioinfornatics Feb 23, 2026
17fb0a1
mcp: add genui service extension (sampling)
bioinfornatics Feb 23, 2026
cf4bece
config: enable genui_service extension by default
bioinfornatics Feb 23, 2026
eec757c
ui: guard json-render registry against shadcn overrides
bioinfornatics Feb 23, 2026
0728154
ui: export json-render component key lists
bioinfornatics Feb 23, 2026
f2e8bd5
ui: harden json-render parsing (limits + unknown component errors)
bioinfornatics Feb 23, 2026
d6e2cac
ui: stabilize json-render setup exports
bioinfornatics Feb 23, 2026
1ba2267
ui: test json-render error surfaces
bioinfornatics Feb 23, 2026
8ff5f98
ui: validate json-render specs and improve error handling
bioinfornatics Feb 23, 2026
225caca
mcp: validate genui_service output types and size
bioinfornatics Feb 23, 2026
a767479
routing: add dashboard intent tests
bioinfornatics Feb 23, 2026
abecbf6
orchestrator: use slot registry for dynamic agent catalog
bioinfornatics Feb 23, 2026
6f2185f
orchestrator: add DAG fields to plan tasks
bioinfornatics Feb 23, 2026
e14c65a
Orchestrator: configurable max concurrency + compound DAG dispatcher
bioinfornatics Feb 23, 2026
0d4a2ea
CLI: hermetic scenario tests via in-process goosed + fixture provider
bioinfornatics Feb 24, 2026
b57c9e6
cli: add per-invocation orchestrator max concurrency override
bioinfornatics Feb 24, 2026
9c6aaff
orchestrator: persist compound run summaries to session extension data
bioinfornatics Feb 24, 2026
46221eb
orchestrator: ingest compound runs into knowledge graph memory
bioinfornatics Feb 24, 2026
edbc5a9
orchestrator: add dispatch event stream + run/task tracing spans
bioinfornatics Feb 25, 2026
d28d0b1
ui: update GenUI example specs to match json-render registry
bioinfornatics Feb 25, 2026
7e6017f
ui: add regression tests for chat interruption queue and text animato…
bioinfornatics Feb 25, 2026
c2c24dd
ui: bridge shadcn theme tokens to goose semantic vars
bioinfornatics Feb 25, 2026
fe0eb39
ui: make user chat bubbles DS-readable + render json-render blocks ou…
bioinfornatics Feb 25, 2026
01541bd
Fix json-render layout inside markdown and enforce full-width containers
bioinfornatics Feb 25, 2026
2e25f34
Add sortable DataTable component to GenUI
bioinfornatics Feb 25, 2026
94ba3cb
Fix GenUI charts: coerce numeric strings and improve chart visibility
bioinfornatics Feb 25, 2026
427609f
GenUI: chat-safe layout rules and wider cards
bioinfornatics Feb 25, 2026
abe0314
GenUI: empty states + spec validation
bioinfornatics Feb 25, 2026
3cc1900
GenUI: validate json-render output via genui__render in orchestrated …
bioinfornatics Feb 25, 2026
d79ece6
GenUI: reject JSONL specs that write /state/* without creating /state
bioinfornatics Feb 25, 2026
a3c652a
GenUI: validate bindings and persist mode slug
bioinfornatics Feb 25, 2026
05b7926
GenUI: pass spec state to json-render renderer
bioinfornatics Feb 25, 2026
ae77391
Test: json-render resolves from spec state
bioinfornatics Feb 25, 2026
4a07be4
GenUI: align catalog prompt layout rules for chat
bioinfornatics Feb 25, 2026
10b49f1
Docs: capture GenUI state binding pitfalls
bioinfornatics Feb 26, 2026
8268171
GenUI: harden house style + drift tests
bioinfornatics Feb 26, 2026
01bff5e
GenUI: codify root Card centered=false in prompt drift
bioinfornatics Feb 26, 2026
87bc9fd
GenUI: validate CardGrid + document sizing tokens
bioinfornatics Feb 26, 2026
dd2c609
UI: a11y and lint cleanup for agents/analytics
bioinfornatics Feb 26, 2026
27b9d14
Docs: atomic design RFC + component inventory
bioinfornatics Feb 26, 2026
bb46a4f
Docs: atomic design uses lowercase layer directories
bioinfornatics Feb 26, 2026
20ed2aa
UI: start atomic migration (phase 1 atoms)
bioinfornatics Feb 26, 2026
d71135a
Docs: atomic design mapping decisions (molecules vs pages)
bioinfornatics Feb 26, 2026
bd64e96
UI: start atomic migration (phase 2 molecules)
bioinfornatics Feb 26, 2026
5397237
UI: start atomic migration (phase 3 templates + agents)
bioinfornatics Feb 26, 2026
92a17d8
UI: fix atomic migration test import
bioinfornatics Feb 26, 2026
4525074
UI: add route-level pages wrappers
bioinfornatics Feb 26, 2026
e614f24
Docs/UI: enforce atomic design import boundaries
bioinfornatics Feb 26, 2026
a14cdd2
UI: normalize component filenames to shadcn style
bioinfornatics Feb 26, 2026
9de410f
ui(desktop): remove legacy components/ui shim and standardize imports
bioinfornatics Feb 26, 2026
1535054
ui(desktop): consolidate duplicate imports
bioinfornatics Feb 26, 2026
0e8dd63
ui(desktop): align provider guard + fix tests + button types
bioinfornatics Feb 26, 2026
ed6ebbf
ui(desktop): biome backlog cleanup (a11y + hooks + non-null guards)
bioinfornatics Feb 26, 2026
d45038f
ui(desktop): add OverlayActionCard and standardize catalog/workflow c…
bioinfornatics Feb 26, 2026
f83e006
ui(desktop): standardize pipeline cards with OverlayActionCard
bioinfornatics Feb 26, 2026
cbba621
ui(desktop): remove remaining non-null assertions in work block tests
bioinfornatics Feb 26, 2026
140713d
ui(desktop): use semantic button for workflow search results
bioinfornatics Feb 26, 2026
5a46126
ui(desktop): standardize session cards with OverlayActionCard
bioinfornatics Feb 26, 2026
5942edf
ui(desktop): use semantic button for extension loading toast trigger
bioinfornatics Feb 26, 2026
003053c
ui(desktop): remove cursor-pointer styling from non-interactive wrappers
bioinfornatics Feb 26, 2026
26bfa52
ui(desktop): remove stale cursor-pointer and fix empty dashboard copy
bioinfornatics Feb 26, 2026
17e686b
ui(desktop): make analytics dashboard and eval runs navigable
bioinfornatics Feb 26, 2026
762191a
ui(desktop): make eval run history table actions semantic
bioinfornatics Feb 26, 2026
c7586c6
ui(desktop): add axe-core color contrast audit (e2e)
bioinfornatics Feb 26, 2026
12f5f22
ui(desktop): expand contrast audit coverage and fix toast trigger sem…
bioinfornatics Feb 26, 2026
713febe
ui(desktop): harden playwright e2e runner and vite main/preload builds
bioinfornatics Feb 26, 2026
6736e5d
ui(desktop): skip devtools installer during playwright and harden import
bioinfornatics Feb 26, 2026
b7cb03d
ui(desktop): add axe-core contrast audit and ensure renderer alias
bioinfornatics Feb 26, 2026
a25dad2
ui(desktop): fix nested button warning in provider cards
bioinfornatics Feb 27, 2026
d03f4a4
ui(desktop): avoid unified input context update loop
bioinfornatics Feb 27, 2026
6a2b2cd
ui(desktop): stabilize playwright contrast audit and fix low-contrast…
bioinfornatics Feb 27, 2026
41cdf5b
docs: capture non-obvious e2e contrast audit learnings
bioinfornatics Feb 27, 2026
a35826a
ui(desktop): improve disabled button contrast
bioinfornatics Feb 27, 2026
d3d3d3c
ui(desktop): add playwright e2e journey scenarios
bioinfornatics Feb 27, 2026
f023a8f
ui(desktop): add e2e journeys for datasets, runs, monitoring details
bioinfornatics Feb 27, 2026
ebf0e0e
ui(desktop): split contrast audit into per-page tests
bioinfornatics Feb 27, 2026
fd194e0
ui(desktop): professionalize e2e env workflow and debug artifacts
bioinfornatics Feb 27, 2026
9caa26b
ui(desktop): disable auto-open playwright html report
bioinfornatics Feb 27, 2026
17e6cea
ui(desktop): harden playwright runner and create-session journey
bioinfornatics Feb 28, 2026
8131085
ui(desktop): prevent update_from_session loops in React 19
bioinfornatics Feb 28, 2026
fdc05fe
ui(desktop): remove tooltip loops and fix nested interactive markup
bioinfornatics Feb 28, 2026
86e6094
test(e2e): scope create-session assertions to active chat session
bioinfornatics Feb 28, 2026
1c56f26
Desktop: start New Chat in home directory
bioinfornatics Feb 28, 2026
3fb7352
Desktop: reliably switch sessions from sidebar
bioinfornatics Feb 28, 2026
ab2228e
Desktop: use /sessions/:id for active chat route
bioinfornatics Feb 28, 2026
0ec086b
Desktop: fix sidebar session click
bioinfornatics Feb 28, 2026
d9d1cde
Desktop: avoid blank screen when creating session
bioinfornatics Feb 28, 2026
7534966
Desktop: fix sessions view navigation after /sessions refactor
bioinfornatics Feb 28, 2026
2fc52b4
Desktop: add /sessions/:id route
bioinfornatics Feb 28, 2026
235f679
Desktop: prevent crash when activeSessions uninitialized
bioinfornatics Feb 28, 2026
689ff6e
Desktop: fix New Chat home dir resolution
bioinfornatics Feb 28, 2026
5e94723
Desktop: navigate away when viewing deleted session
bioinfornatics Feb 28, 2026
73ad7a3
Desktop: sidebar header Projects with Goose logo
bioinfornatics Feb 28, 2026
577de67
Desktop: fix missing gooseIcon import
bioinfornatics Feb 28, 2026
27dd495
Desktop: remove New Chat top entry
bioinfornatics Feb 28, 2026
d547db3
Desktop: fix projects header button hit area
bioinfornatics Feb 28, 2026
351e270
Desktop: make projects header button reliably clickable
bioinfornatics Feb 28, 2026
69dd36c
Desktop: prevent sidebar toggle overlay from blocking header clicks
bioinfornatics Feb 28, 2026
41b825b
Desktop: stop titlebar drag region from stealing header clicks
bioinfornatics Feb 28, 2026
d6ccc33
Desktop: remove titlebar drag overlay
bioinfornatics Feb 28, 2026
61ea7ae
Desktop: widen welcome state container
bioinfornatics Feb 28, 2026
f11c329
Desktop: responsive welcome width + remove titlebar drag remnants
bioinfornatics Feb 28, 2026
246ce1e
Desktop: move View All to /sessions/history
bioinfornatics Feb 28, 2026
42f9871
Desktop: remove remaining /sessions navigations
bioinfornatics Feb 28, 2026
a19c3fc
Desktop: remove /sessions route and update main window mapping
bioinfornatics Feb 28, 2026
5d0782a
Desktop: remove /sessions redirects
bioinfornatics Feb 28, 2026
48ea6d3
Desktop: prevent UnifiedInputContext render loop
bioinfornatics Feb 28, 2026
2dd8901
Desktop: default API client baseUrl to GOOSE_API_HOST
bioinfornatics Feb 28, 2026
7bf6599
Desktop: keep API client baseUrl defaulted
bioinfornatics Feb 28, 2026
87e5edb
Revert "Desktop: keep API client baseUrl defaulted"
bioinfornatics Feb 28, 2026
2547d13
Desktop: set sync API baseUrl fallback in renderer
bioinfornatics Feb 28, 2026
b95e5be
Desktop: avoid treating /sessions/history as a session id
bioinfornatics Feb 28, 2026
52cc46b
Desktop: avoid fetching session for /sessions/history
bioinfornatics Feb 28, 2026
5b9220b
Desktop: add E2E coverage for View All history navigation
bioinfornatics Mar 1, 2026
93d8ce3
Desktop: close mobile sidebar on View All navigation
bioinfornatics Mar 1, 2026
edb9bda
Fix View All navigation in sidebar
bioinfornatics Mar 1, 2026
37006d8
desktop: load dotenv for e2e and fail fast when provider/model missing
bioinfornatics Mar 1, 2026
51df50c
desktop: fix sessions history layout and restore extensions test hook
bioinfornatics Mar 1, 2026
c9e7439
desktop: land on hub welcome instead of history
bioinfornatics Mar 1, 2026
4983525
desktop: format ui source with biome
bioinfornatics Mar 1, 2026
c7724e6
desktop: fix sidebar session click hit testing
bioinfornatics Mar 1, 2026
d0c8834
desktop: fix session navigation from sidebar and history
bioinfornatics Mar 2, 2026
33ec2f9
desktop: fix sidebar session row click in hub
bioinfornatics Mar 2, 2026
a4d7d16
desktop: allow sidebar session name click to activate
bioinfornatics Mar 2, 2026
d2f15dd
desktop: dedupe GenUI entries and restore extension toggles
bioinfornatics Mar 2, 2026
c026740
desktop: improve contrast audit coverage for extensions
bioinfornatics Mar 2, 2026
87f9d85
desktop: make extensions contrast audit navigate via catalogs
bioinfornatics Mar 2, 2026
0b0a6ac
desktop: improve catalogs affordance and contrast audit routing
bioinfornatics Mar 2, 2026
11ff6f2
desktop: improve switch contrast for unchecked state
bioinfornatics Mar 3, 2026
b99f5ef
desktop: increase switch off-state track contrast
bioinfornatics Mar 3, 2026
f204f57
desktop: make switch off-state neutral gray
bioinfornatics Mar 3, 2026
83d38a4
desktop: darken background muted tokens
bioinfornatics Mar 3, 2026
ceec713
desktop: round chat input corners
bioinfornatics Mar 3, 2026
af1fbcf
desktop: round chat input all corners
bioinfornatics Mar 3, 2026
ebcfb83
desktop: swap switch thumb colors for extension toggles
bioinfornatics Mar 3, 2026
22c6ada
desktop: increase surface switch on/off contrast
bioinfornatics Mar 3, 2026
ae8a80d
desktop: set user message background to #f4f4f4
bioinfornatics Mar 3, 2026
9fe0863
desktop: show chevron on workflows cards
bioinfornatics Mar 3, 2026
c9c33c9
desktop: overlay project hover actions
bioinfornatics Mar 3, 2026
62a4fe0
desktop: show user name in sidebar footer
bioinfornatics Mar 3, 2026
6097de6
desktop: live-update activity panel during streaming
bioinfornatics Mar 3, 2026
9addc56
desktop: populate activity panel from streaming tool calls
bioinfornatics Mar 3, 2026
eb3edbd
desktop: decouple activity panel detail messages from inline preview
bioinfornatics Mar 3, 2026
ecb4f1d
desktop: avoid marking completed tools as active in activity panel
bioinfornatics Mar 3, 2026
7c14e88
desktop: add backend activity events to reasoning panel
bioinfornatics Mar 4, 2026
b7efde6
server: stream routing/orchestrator activity events
bioinfornatics Mar 4, 2026
e2b0ebc
server: stream per-subtask dispatch activity events
bioinfornatics Mar 4, 2026
c7b7be5
desktop: persist goose/activity events and use for workblock summary
bioinfornatics Mar 4, 2026
2ad8c04
desktop: add activity observability and tests
bioinfornatics Mar 4, 2026
6a0f743
desktop: robustly parse goose/activity notifications
bioinfornatics Mar 4, 2026
0cf69ec
desktop: fix activityEvents wiring and test typing
bioinfornatics Mar 4, 2026
a612fec
server: emit routing activity notifications for non-compound runs
bioinfornatics Mar 4, 2026
e90fcac
feat(orchestrator): XML-structured prompts + AGENTS.md standard adoption
bioinfornatics Mar 5, 2026
11db3b4
feat(routing): add TF-IDF semantic router (Layer 2)
bioinfornatics Mar 5, 2026
fedc30f
fix(a11y): add missing muted semantic bg tokens, fix Delete button co…
bioinfornatics Mar 5, 2026
4bdce37
chore(ui): biome lint cleanup β€” organize imports, fix button types, f…
bioinfornatics Mar 5, 2026
337f75e
feat(agents): enrich mode descriptions, enhance prompts, add analytic…
bioinfornatics Mar 5, 2026
567dd96
feat(ui): analytics components, model/provider context, chat stream i…
bioinfornatics Mar 5, 2026
2a347a8
feat(eval): enrich PM/Research descriptions + add routing eval regres…
bioinfornatics Mar 5, 2026
2c62671
feat(agents): genui cross-agent binding + adaptive debug reasoning + …
bioinfornatics Mar 5, 2026
2c4903f
feat(orchestrator): wire LLM-powered result aggregation for compound …
bioinfornatics Mar 5, 2026
ba03457
feat(agents): per-project agent config via .goose/agents.yaml
bioinfornatics Mar 6, 2026
da39d38
feat(routing): add routing feedback loop β€” learn from user corrections
bioinfornatics Mar 6, 2026
48f7b6e
feat(server): add agent config API routes for .goose/agents.yaml CRUD
bioinfornatics Mar 6, 2026
406aed8
feat(knowledge): GraphRAG-lite knowledge extraction from conversations
bioinfornatics Mar 6, 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
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
crates/goose/src/agents/snapshots/*.snap linguist-language=Text

# Use bd merge for beads JSONL files
.beads/issues.jsonl merge=beads
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,31 @@ tokenizer_files/
.DS_Store
.idea
*.log
.env
.env.*
!.env.example
!.env.*.example
tmp/
.envrc


# Local scratch / workspace artifacts (do not commit)
/goose_tmp
/todo.md
/copilot_studio_analytics.jpg

# Observability stack (local dev only, untracked configs)
/observability/otelcol.yaml
/observability/podman-compose.yaml
/observability/tempo.yaml

logs/
# Generated by Cargo
# will have compiled files and executables
debug/
target/
.goose/
diagnostics_*/

# These are backup files generated by rustfmt
**/*.rs.bk
Expand Down Expand Up @@ -73,3 +90,6 @@ result
# Goose self-test artifacts
gooseselftest/
.tasks/
*.png
ui/desktop/dist/
*.webm
104 changes: 87 additions & 17 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ just record-mcp-tests # record MCP
```bash
cargo fmt
cargo clippy --all-targets -- -D warnings
./scripts/clippy-lint.sh # full lint pass
```

### UI
Expand All @@ -41,61 +42,130 @@ cd ui/desktop && npm test # test UI
## Structure
```
crates/
β”œβ”€β”€ goose # core logic
β”œβ”€β”€ goose # core logic (agents, routing, orchestration, providers)
β”œβ”€β”€ goose-bench # benchmarking
β”œβ”€β”€ goose-cli # CLI entry
β”œβ”€β”€ goose-server # backend (binary: goosed)
β”œβ”€β”€ goose-mcp # MCP extensions
β”œβ”€β”€ goose-cli # CLI entry point
β”œβ”€β”€ goose-server # backend REST server (binary: goosed)
β”œβ”€β”€ goose-mcp # MCP extension servers (developer, etc.)
β”œβ”€β”€ goose-test # test utilities
β”œβ”€β”€ mcp-client # MCP client
β”œβ”€β”€ mcp-core # MCP shared
└── mcp-server # MCP server
β”œβ”€β”€ mcp-client # MCP client library
β”œβ”€β”€ mcp-core # MCP shared types
└── mcp-server # MCP server framework

temporal-service/ # Go scheduler
ui/desktop/ # Electron app
ui/desktop/ # Electron app (TypeScript)
```

## Architecture

### Agent System
- **Agent trait** (`crates/goose/src/agents/agent.rs`) β€” core abstraction for all agents
- **OrchestratorAgent** (`agents/orchestrator_agent.rs`) β€” LLM-based meta-coordinator, routes to specialists
- **IntentRouter** (`agents/intent_router.rs`) β€” keyword-based fast routing fallback
- **Dispatch** (`agents/dispatch.rs`) β€” executes sub-tasks via InProcess, A2A, or composite dispatchers
- **AgentPool** (`agents/agent_pool.rs`) β€” manages agent lifecycle and reuse
- Specialized agents: Developer, QA, PM, Security, Research (each in `agents/` subdir)

### Routing Flow
```
User message β†’ IntentRouter (keywords, <10ms)
β†’ OrchestratorAgent (LLM classifier, ~1-5s)
β†’ dispatch_compound_dag (parallel DAG execution)
```

### Extension System
- Extensions are MCP servers (Model Context Protocol)
- Registered in `agents/extension.rs`, managed by `agents/extension_manager.rs`
- Extensions provide tools, resources, and prompts
- genui extension enables UI generation

### Prompt Templates
- Located in `crates/goose/src/prompts/` as `.md` files
- Rendered via `prompt_template.rs` using Handlebars (`{{variable}}`)
- Orchestrator prompts use XML-structured tags (Anthropic best practice)
- Agent-specific prompts in subdirectories (e.g., `prompts/developer/`, `prompts/orchestrator/`)

### A2A (Agent-to-Agent)
- Protocol for cross-agent communication (Google A2A, JSON-RPC 2.0 over HTTP)
- `DelegationStrategy::RemoteA2AAgent` in dispatch.rs
- Agent Cards for discovery, capability negotiation

## Development Loop
```bash
# 1. source bin/activate-hermit
# 2. Make changes
# 3. cargo fmt
# 4. cargo build
# 5. cargo test -p <crate>
# 6. cargo clippy --all-targets -- -D warnings
# 6. ./scripts/clippy-lint.sh
# 7. [if server] just generate-openapi
```

## Rules

Test: Prefer tests/ folder, e.g. crates/goose/tests/
Test: When adding features, update goose-self-test.yaml, rebuild, then run `goose run --recipe goose-self-test.yaml` to validate
Test: When adding features, update recipes/goose-self-test.yaml, rebuild, then run `goose run --recipe recipes/goose-self-test.yaml` to validate
Error: Use anyhow::Result
Provider: Implement Provider trait see providers/base.rs
Provider: Implement Provider trait β€” see providers/base.rs
MCP: Extensions in crates/goose-mcp/
Server: Changes need just generate-openapi

## Code Quality

Comments: Write self-documenting code - prefer clear names over comments
Comments: Write self-documenting code β€” prefer clear names over comments
Comments: Never add comments that restate what code does
Comments: Only comment for complex algorithms, non-obvious business logic, or "why" not "what"
Simplicity: Don't make things optional that don't need to be - the compiler will enforce
Simplicity: Don't make things optional that don't need to be β€” the compiler will enforce
Simplicity: Booleans should default to false, not be optional
Errors: Don't add error context that doesn't add useful information (e.g., `.context("Failed to X")` when error already says it failed)
Simplicity: Avoid overly defensive code - trust Rust's type system
Errors: Don't add error context that doesn't add useful information
Simplicity: Avoid overly defensive code β€” trust Rust's type system
Logging: Clean up existing logs, don't add more unless for errors or security events

## Key Design Decisions

- **Supervisor pattern** for orchestration (OrchestratorAgent selects specialist agents)
- **MCP-first** extension architecture β€” all tools exposed via MCP protocol
- **A2A** for remote agent delegation β€” enables distributed multi-agent systems
- **XML-structured prompts** in orchestrator β€” follows Anthropic 2025 best practices
- **DAG-based parallel dispatch** β€” `dispatch_compound_dag` uses `FuturesUnordered` for concurrent sub-tasks
- **Feature flag** `GOOSE_ORCHESTRATOR_DISABLED` β€” falls back to keyword-only routing

## Never

Never: Edit ui/desktop/openapi.json manually
Never: Edit Cargo.toml use cargo add
Never: Edit Cargo.toml β€” use `cargo add`
Never: Skip cargo fmt
Never: Merge without running clippy
Never: Comment self-evident operations (`// Initialize`, `// Return result`), getters/setters, constructors, or standard Rust idioms
Never: Comment self-evident operations, getters/setters, constructors, or standard Rust idioms

## Entry Points
- CLI: crates/goose-cli/src/main.rs
- Server: crates/goose-server/src/main.rs
- UI: ui/desktop/src/main.ts
- Agent: crates/goose/src/agents/agent.rs

## Landing the Plane (Session Completion)

**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.

**MANDATORY WORKFLOW:**

1. **File issues for remaining work** β€” Create issues for anything that needs follow-up
2. **Run quality gates** (if code changed) β€” Tests, linters, builds
3. **Update issue status** β€” Close finished work, update in-progress items
4. **PUSH TO REMOTE** β€” This is MANDATORY:
```bash
git pull --rebase
bd sync
git push
git status # MUST show "up to date with origin"
```
5. **Clean up** β€” Clear stashes, prune remote branches
6. **Verify** β€” All changes committed AND pushed
7. **Hand off** β€” Provide context for next session

**CRITICAL RULES:**
- Work is NOT complete until `git push` succeeds
- NEVER stop before pushing β€” that leaves work stranded locally
- NEVER say "ready to push when you are" β€” YOU must push
- If push fails, resolve and retry until it succeeds
Loading