overhaul provider inventory and agent/model selection (#8652)

Signed-off-by: Bradley Axen <baxen@squareup.com>
This commit is contained in:
Bradley Axen
2026-04-20 15:00:17 -07:00
committed by GitHub
parent 3d582943fd
commit 8eda6fdabc
70 changed files with 5321 additions and 2123 deletions
+13 -3
View File
@@ -36,9 +36,19 @@ const EXCEPTIONS = {
"Search-as-you-type filtering and draft-aware sidebar highlight logic.",
},
"src/app/AppShell.tsx": {
limit: 660,
limit: 730,
justification:
"Shell still coordinates ACP session loading, replay-buffer cleanup on load failure, project reassignment, and app-level chat routing. Includes gated [perf:load]/[perf:newtab] logging via perfLog (dev-only by default).",
"Shell still coordinates ACP session loading, replay-buffer cleanup on load failure, project reassignment, home-session restoration, app-level chat routing, and restored project-draft reuse. Includes gated [perf:load]/[perf:newtab] logging via perfLog (dev-only by default).",
},
"src/features/chat/hooks/useChatSessionController.ts": {
limit: 690,
justification:
"Controller now centralizes home-to-chat pending state transfer, workspace/project preparation, provider/model/persona handoff, Goose cross-provider model selection sequencing with rollback, and chat input orchestration pending a later decomposition pass.",
},
"src/features/chat/ui/AgentModelPicker.tsx": {
limit: 570,
justification:
"Agent-first picker currently keeps the full trigger, recommended-model view, searchable full-model view, and ACP/goose-specific labeling logic in one component pending later extraction.",
},
"src/features/chat/stores/__tests__/chatSessionStore.test.ts": {
limit: 540,
@@ -56,7 +66,7 @@ const EXCEPTIONS = {
"Voice dictation send/stop guards, attachment handling, and mention/picker coordination still share one chat composer component.",
},
"src/features/chat/ui/__tests__/ChatInput.test.tsx": {
limit: 510,
limit: 520,
justification:
"Composer regression coverage spans personas, queueing, attachments, and voice-input edge cases in one interaction-heavy suite.",
},
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
# Reset the provider inventory tables to empty, as if migration 12 just ran.
# This lets you test the first-use experience (cold inventory).
#
# Usage: ./scripts/reset-inventory.sh
set -euo pipefail
DB="${GOOSE_DB:-$HOME/.local/share/goose/sessions/sessions.db}"
if [ ! -f "$DB" ]; then
echo "Database not found at $DB"
echo "Set GOOSE_DB to override the path."
exit 1
fi
echo "Database: $DB"
echo ""
echo "Before:"
echo " provider_inventory_entries: $(sqlite3 "$DB" 'SELECT COUNT(*) FROM provider_inventory_entries;')"
echo " provider_inventory_models: $(sqlite3 "$DB" 'SELECT COUNT(*) FROM provider_inventory_models;')"
# ON DELETE CASCADE on provider_inventory_models means deleting entries clears both tables.
# Delete models first since CASCADE isn't reliable in all sqlite3 builds,
# then delete entries.
sqlite3 "$DB" "DELETE FROM provider_inventory_models; DELETE FROM provider_inventory_entries;"
echo ""
echo "After:"
echo " provider_inventory_entries: $(sqlite3 "$DB" 'SELECT COUNT(*) FROM provider_inventory_entries;')"
echo " provider_inventory_models: $(sqlite3 "$DB" 'SELECT COUNT(*) FROM provider_inventory_models;')"
echo ""
echo "Inventory tables are empty. Restart goose to test first-use flow."