Merge branch 'web2-todo' into feat/todo-multi-in-progress
Stack the parallel-in_progress change on the web todo display (#497): the GUI is now the surface where several active items are visible, so the two land as a chain rather than colliding on tool-todo at merge time. Conflicts combined rather than resolved to one side: tool-todo keeps this branch's parallel-allowing validation AND web2-todo's additionalProperties unknown-key rejection, in src/index.ts and both README sides; the spec drops web2-todo's 'two in_progress' rejection case and keeps its unknown-key case; the two headless advanced-toolchain session fixtures keep this branch's parallel transcripts.
This commit is contained in:
@@ -32,7 +32,10 @@ const DESCRIPTION =
|
||||
* Validate the value constraints the ParameterSchemaSpec can't express and build the canonical {@link
|
||||
* TodoItem}[]: trimmed non-empty unique content. Any number of items may be in_progress —
|
||||
* parallel work (subagents, background commands) legitimately runs several tasks at once. The
|
||||
* registry has already enforced the status enum; the cast below records that guarantee.
|
||||
* registry has already enforced the status enum and rejected unknown item keys
|
||||
* (`additionalProperties: false` — the logged snapshot must equal what the model believes it
|
||||
* wrote, so a nested/extended item shape fails loud at the schema boundary instead of silently
|
||||
* flattening); the cast below records that guarantee.
|
||||
*/
|
||||
function toTodoList(raw: { content: string; status: string }[]): TodoItem[] {
|
||||
const todos: TodoItem[] = []
|
||||
@@ -63,7 +66,7 @@ export function apply(ctx: Context): void {
|
||||
description: 'The COMPLETE task list, replacing any previous list.',
|
||||
items: {
|
||||
type: 'object',
|
||||
additionalProperties: true,
|
||||
additionalProperties: false,
|
||||
properties: {
|
||||
content: { type: 'string', required: true, description: 'What the task is — a short imperative line.' },
|
||||
status: {
|
||||
|
||||
Reference in New Issue
Block a user