- fix(compaction): tokensBefore undefined crash on reload compaction-orchestrator now falls back to preparation.totalTokens when extension returns tokensBefore: undefined; compaction-summary-message guards with ?? 0 defensively - feat(exec): inline truncation notice in sf_exec digest appends [stdout truncated — read full output: <path>] when stdout_truncated=true so agent knows to use sf_exec_search - feat(exec): wire onUpdate progress for sf_exec calls onUpdate before execution starts with status/command so TUI shows live feedback during long-running commands - feat(security): prompt injection defense for external content new sanitize-external-content.js utility: strips HTML comments, detects 15 injection patterns (instruction override, role reassignment, fake system messages, encoded payloads); wired into exec-tool digest - feat(tools): sf_session_todo tool (persisted cross-compaction) add/check/list ops; persists to .sf/session_todo.json; pending todos injected into compaction summary block for context continuity - feat(hooks): shell hooks surface (.sf/hooks/pre-tool/*.sh, post-tool/*.sh) pre-tool hooks block tool execution (exit≠0 = block with stdout reason) post-tool hooks fire-and-forget; JSON context piped to stdin; 5s timeout - fix(db): WAL autocheckpoint disabled to prevent corruption PRAGMA wal_autocheckpoint=0 in initSchema(); explicit checkpointWal() after successful finalize verification — the only safe checkpoint point Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| daemon | ||
| google-gemini-cli-provider | ||
| native | ||
| pi-agent-core | ||
| pi-ai | ||
| pi-coding-agent | ||
| pi-tui | ||
| rpc-client | ||