@@ -31,11 +31,13 @@ Use this whenever changing `opencode-ai`, `@opencode-ai/sdk`, `@opencode-ai/plug
3131- [ ] ` src/utils/session-abort.ts ` : pending question replies, pending permission rejects, custom permission cleanup, and ` session.abort ` .
3232- [ ] ` src/utils/chat-usage.ts ` : ` session.messages() ` shape, assistant ` tokens ` , ` providerID ` , ` modelID ` , ` time.completed ` , and last-synced message behavior.
3333- [ ] ` src/utils/chat-session.ts ` : message part types, tool state statuses, pending input detection, and stale running tool normalization.
34+ - [ ] Pagination API for ` session.messages() ` in ` src/utils/session-messages-page.ts `
3435
3536## OpenCode Message And Permission Shapes
3637
3738- [ ] Confirm ` SessionStatusMap ` still maps session id to ` { type: "busy" | "retry" | "idle" } ` .
3839- [ ] Confirm message containers still look like ` { info, parts } ` for ` session.messages() ` .
40+ - [ ] Confirm ` session.messages({ query: { limit: 1 } }) ` still returns the latest message first.
3941- [ ] Confirm ` ToolPart ` still has ` tool ` , ` callID ` , ` messageID ` , and ` state.status ` .
4042- [ ] Confirm tool states still use ` pending ` , ` running ` , ` completed ` , and ` error ` .
4143- [ ] Confirm pending questions still expose ` id ` , ` sessionID ` , ` questions ` , and optional ` tool.messageID ` / ` tool.callID ` .
@@ -77,6 +79,7 @@ Known risky areas:
7779- [ ] ` python-protection.ts ` : ` command.execute.before ` , ` tool.execute.before ` , ` command ` , ` arguments ` , ` workdir ` , ` cwd ` , ` directory ` , and ` worktree ` .
7880- [ ] ` honeytoken-protection.ts ` : ` tool.execute.before ` , ` tool.execute.after ` , output shape, metadata shape, title shape, and input args visibility.
7981- [ ] ` skill-command-guard.ts ` : ` tool.execute.before ` , ` task ` tool id, ` command ` arg shape, root session resolution, and backend skill metadata response.
82+ - [ ] ` runWorkflow.ts ` : latest-message concurrency guard, ` client.session.messages({ limit: 1 }) ` , ` runWorkflow ` tool-part detection, and same-` callID ` allowance.
8083- [ ] Custom tools in ` .opencode/plugins/*.ts ` : ` tool() ` definition shape, ` execute(args, context) ` , return type, ` context.sessionID ` , ` context.messageID ` , ` context.callID ` , ` context.ask ` , ` context.metadata ` , and backend fetch behavior.
8184
8285## Custom TeamCopilot Tools To Smoke Test
@@ -116,6 +119,8 @@ Known risky areas:
116119- [ ] Trigger a custom TeamCopilot permission prompt and approve/reject it.
117120- [ ] Run a prompt cronjob through planning, todo execution, user attention, resume, completion, and failure.
118121- [ ] Run a workflow via ` runWorkflow ` .
122+ - [ ] Try one ` runWorkflow ` call and confirm it is allowed.
123+ - [ ] Try two ` runWorkflow ` calls in the same latest assistant message and confirm the second one is rejected.
119124- [ ] Verify secret placeholder rewriting in shell commands without exposing plaintext in model-visible output.
120125- [ ] Abort an active session and verify pending questions/permissions are cleaned up.
121126- [ ] Sync usage and confirm token/cost rows are updated.
0 commit comments