Changeset 0.19.0.1 (#82)
This commit is contained in:
@@ -47,7 +47,7 @@ Three Docker images support different deployment scenarios:
|
||||
|
||||
6. **Channels as Execution Context**: Channels are the universal container for conversation state — messages, tool activity, notes, and artifacts all hang off a channel. Today channels are single-user direct chats. The architecture anticipates multi-participant channels (team members, anonymous visitors, AI personas) for workflow execution, without requiring changes to the message tree, tool framework, or streaming infrastructure.
|
||||
|
||||
## Workflow Architecture (Future — v0.21.0+)
|
||||
## Workflow Architecture (Future — v0.25.0+)
|
||||
|
||||
The platform's existing primitives (teams, personas, channels, tools, notes)
|
||||
compose into a workflow engine where the channel is the execution context
|
||||
@@ -235,7 +235,33 @@ scope='team' → owner_id=team.id → Team-admin-managed, visible to team
|
||||
scope='personal' → owner_id=user.id → User-managed, visible to owner
|
||||
```
|
||||
|
||||
Used by: `provider_configs`, `personas`, `model_catalog` (visibility column adds `enabled`/`disabled`/`team` states on top).
|
||||
Used by: `provider_configs`, `personas`, `model_catalog` (visibility column adds `enabled`/`disabled`/`team` states on top), `projects`.
|
||||
|
||||
## Projects (v0.19.0)
|
||||
|
||||
Projects are organizational containers that group channels, knowledge bases,
|
||||
and notes. They follow the same scope model as other resources.
|
||||
|
||||
**KB Resolution Chain:**
|
||||
```
|
||||
Persona KBs → Project KBs → Channel KBs → Personal KBs
|
||||
```
|
||||
|
||||
When a channel belongs to a project, all KBs bound to that project are
|
||||
automatically included in both the system prompt hint (`BuildKBHint`) and
|
||||
tool-time search (`kbsearch`). This means adding a KB to a project makes it
|
||||
available to every channel in that project without per-channel configuration.
|
||||
|
||||
**Channel Association:** Channels have an optional `project_id` FK.
|
||||
The `project_channels` junction table maintains ordered membership with a
|
||||
UNIQUE constraint on `channel_id` (a channel can only belong to one project).
|
||||
`AddChannel` performs an atomic move: single transaction deletes from the
|
||||
old project, inserts into the new one, and updates the denormalized FK.
|
||||
|
||||
**Store Pattern:** `ProjectStore` interface with Postgres and SQLite
|
||||
implementations following the same conventions as other stores (see
|
||||
Store Layer Pattern above). Access checks via `UserCanAccess` enforce
|
||||
owner-or-team-member visibility.
|
||||
|
||||
## Schema Migration
|
||||
|
||||
@@ -276,6 +302,7 @@ src/
|
||||
│ ├── attachments.js # File upload, paste-to-file, lightbox
|
||||
│ ├── notes.js # Notes panel CRUD + graph + daily notes
|
||||
│ ├── note-graph.js # Canvas force-directed graph visualization
|
||||
│ ├── projects-ui.js # Project sidebar, context menu, drag-and-drop
|
||||
│ ├── knowledge.js # Knowledge base UI
|
||||
│ ├── memory-ui.js # Memory settings tab + admin review panel
|
||||
│ └── __tests__/ # Node.js test suite (node --test)
|
||||
|
||||
Reference in New Issue
Block a user