Workflows are big enough for their own minor series. v0.3.x now
includes workflow architecture, team roles (role-based stage
assignment, multi-party sign-off), and trigger composition.
Notes moves from v0.3.0 to v0.4.0. MVP becomes v0.5.0.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The GET / route has no auth middleware, so user_id was always
empty. Add UserIDFromCookie helper that opportunistically reads
the sb_token cookie and extracts user_id without requiring auth.
Now user preference correctly overrides the global default.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The /api/v1/surfaces endpoint doesn't return source field, so
filter by route pattern (/s/ prefix) instead of source !== 'core'.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
resolveDefaultSurface was using ListEnabledByType("surface") which
missed extension packages with type "full". Switch to List() and
filter by source != core/builtin + type surface/full.
Also make welcome surface smarter: detect when extensions exist
but no default is set vs truly empty install, show appropriate
messaging and CTA (Set Default Surface vs Go to Packages).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add entries for welcome surface, user default surface preference,
admin UserMenu, dead settings removal, and default surface routing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Create welcome surface: topbar + getting-started card shown when
no extension surfaces are installed. Admins see a link to Packages,
non-admins see a message to contact their administrator.
- Update resolveDefaultSurface priority chain:
user preference → global config → first extension → /welcome
- Register welcome as a core surface with authenticated auth
- Final fallback is now /welcome instead of /admin, breaking the
infinite back-button loop
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove the Back button and its sessionStorage return-URL stash
logic. Add UserMenu to the right side of the admin topbar,
providing consistent navigation to all surfaces and eliminating
the infinite-loop problem (Back → / → admin → Back → ...).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove System Prompt, Default Model, Policies (BYOK/personas/KB),
Web Search, Auto-Compaction, and Memory Extraction sections — all
chat/AI features gutted in Phase 0. Surviving admin settings:
Default Surface, Registration, Banner, Message Bar, Footer, Vault,
Email.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove all chat-era fields from user settings General section
(Default Model, System Prompt, Max Tokens, Temperature, Show
Thinking). Replace with a Default Surface dropdown that lets
users override the global admin-configured landing page.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mark all v0.2.5 items as complete. Add changelog entry covering
dead code removal, template cleanup, UI fixes, and PoC docs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rename "Chat Defaults" heading to "Defaults" in settings general
- Guard sw.api.models.enabled() call (crashes when no providers
are configured since models API returns undefined)
- Verified: admin, settings, login surfaces render correctly in
both light and dark themes at desktop viewport
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add emoji icon field to hello-dashboard, icd-test-runner,
sdk-test-runner, and team-activity-log manifests
- Create README.md for tasks and schedules packages marking them
as Proof of Concept with documented graduation criteria
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove seed_helpers.go (SeedTestMessage, SeedTestMessages,
SeedTestCursor — all unused, channel/message features gutted)
- Rename channel- prefixed test paths to test- in storage tests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove "chat" from surface disable guard (only admin needs it)
- Remove "chat" from IsSurfaceEnabled always-on check
- Remove unused fmt.Sprintf references in team stores
- Update stale comments referencing personas and chat surfaces
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Delete unused Grant struct (persona-era, zero references)
- Delete CompositeModelKey (never called)
- Remove dead comment-only type stubs (NoteGraph, ProjectChannel, etc.)
- Remove empty Chat/Channel event sections from route table
- Remove dead chat.typing/channel.typing condition in WS subscriber
- Update bus doc examples and test labels to use real event names
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Delete ~300 lines of dead CSS for gutted chat, channel, project,
notes, and editor-chat features. Also remove router-picker,
sb-folder, and sidebar-bottom classes with zero HTML references.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove chat-pane.html (defined but never invoked by any surface).
Update doc comments in pages.go to reflect current surfaces.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Delete references to sw-chat-pane.css, sw-notes-pane.css (base.html)
and chat.css (workflow.html) — none of these files exist on disk.
Remove misleading "removed in v0.37.10" comments.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>