forked from bai/curriculum-project-hub
feat: redesign Feishu project console
This commit is contained in:
@@ -34,8 +34,12 @@ provider runtime cursor needed to continue a conversation. For Claude Code SDK,
|
||||
that cursor is the `result.session_id`; store it in `AgentSession.metadata` as
|
||||
`claudeSessionId` and pass it back to the next `query()` call as
|
||||
`options.resume`. Role is part of the session binding because role prompts and
|
||||
tool surfaces can differ even when the underlying model is the same; `/draft`
|
||||
and `/review` must not resume the same Claude runtime cursor by accident.
|
||||
tool surfaces can differ even when the underlying model is the same. A Feishu
|
||||
project group's active binding selects one Organization role for ordinary
|
||||
messages. Switching that selection routes future messages to the selected
|
||||
role's own session; it never mutates or merges provider cursors across roles.
|
||||
Work freezes the selected role when accepted so queued requests cannot drift
|
||||
after a later switch.
|
||||
|
||||
Role definitions are Organization-scoped runtime data. A role bundle selects
|
||||
its default model, system prompt, tool allowlist and installed Agent skill
|
||||
@@ -47,6 +51,20 @@ a Hub release or process restart. A change to the role's execution surface
|
||||
the next run cannot resume a provider context created under stale instructions;
|
||||
label and ordering-only changes preserve conversational continuity.
|
||||
|
||||
Exactly one active role per Organization is the default used when a project
|
||||
group is first bound. The default is configuration data, not a hard-coded role
|
||||
name. Roles are selected through the Hub project console; role ids are not
|
||||
public slash commands. A project participant may change the group's shared
|
||||
selection only when both `agent.trigger` for the project and `role.trigger` for
|
||||
the target role authorize that actor. The selection affects every participant's
|
||||
future messages, while already accepted work keeps its frozen role.
|
||||
|
||||
Hub slash commands are a closed control-plane protocol. Unknown commands fail
|
||||
explicitly and are never downgraded to Agent text. Claude SDK session commands
|
||||
are invoked only through typed Hub actions. In particular, compaction resumes
|
||||
the selected role session and sends the exact `/compact` prompt without
|
||||
prepending Feishu context.
|
||||
|
||||
Environment variables:
|
||||
```
|
||||
ANTHROPIC_BASE_URL=https://openrouter.ai/api
|
||||
|
||||
Reference in New Issue
Block a user