Changelog ​
All notable documentation and behavior updates should be recorded here.
Unreleased ​
- Security: stopped routine status output from exposing dashboard credentials; redacted secrets from tool, audit, cron, console, and Langfuse observability previews; and enforced owner-only permissions for config, core logs/state, agent memory, tool scratch output, setup secrets, and temporary voice files. User-facing cron notification bodies remain unchanged.
- Repo cleanup: removed unreachable team context, unused Codex-interactive formatting, dead Discord thread bookkeeping, inert bootstrap templates, obsolete dynamic tool filtering, and stale tool prompt instructions.
- Dashboard: removed the orphan
TODO.mdAPI, legacy plaintext.jsonsession API, and remaining team/subagent Coding UI and types. Encrypted.jsonlconversation APIs remain unchanged. - Models: GPT-5.6 Sol is now the setup default whenever Codex is selected, including dual-provider Anthropic + Codex setups. Added the
codex5.6alias, user-facingultra, Fast service-tier routing, dashboard/profile support, and priority-tier usage pricing. Direct backend turns mapultrato the maximum acceptedxhigh; Codex CLI coding agents receive trueultraorchestration. - Cron: agent turns now default to a 10-minute wall-clock timeout, and Chief/Chief P2 runs fail when their required HTML artifacts are missing instead of reporting false success.
- Discord: added reusable agent profiles managed with
/agent, backed by~/.skimpyclaw/discord-thread-agents.json. Profiles can point at any configuredagents.listentry and carry model, effort, and prompt overrides. - Discord: added
@alias <message>profile mentions. In server channels they create and bind a thread; in existing threads they bind the thread; in DMs they run directly without thread creation. - Discord:
/agent promptnow accepts supported document attachments for profile prompt overlays, with 2 MB attachment downloads, 100k extracted-text cap, and 20k stored-prompt cap. - Discord: simplified the profile command surface:
/agent effortis the documented effort command,/thread-agent,/agent set, and/agent unsetwere removed, and deleting a profile removes its thread bindings. - Cron: removed the special
pr-reviewpost-run[PR_REVIEW_RESULT]guard; cron agent-turn output now goes through the standard digest, voice, and notification paths. - Removed the sandbox / container-isolation subsystem entirely:
src/sandbox/*(bridge, manager, mount-security, runtime, index),src/sandbox-utils.ts, theskimpyclaw sandboxCLI subcommand (init,status,prune,doctor), the sandbox setup-wizard step, thesandboxconfig field onConfig,SandboxConfiginterface, sandbox branches intools.ts/executor.ts/cron.ts/heartbeat.ts,checkSandboxAvailabledoctor check, and all sandbox tests. Exec approval (risk tiers 0–3) remains the command-safety gate. Runtime config in~/.skimpyclaw/config.jsonmay still contain asandboxfield — it is ignored and safe to remove. - Removed
code_with_team/ team orchestration entirely:src/code-agents/orchestrator.ts(1,022 LOC), its 19-test suite, the tool schema, team-coordinator task fields (parentTaskId,childTaskIds,subtask,synthesisResult,dependsOn,wave) andDecomposedSubtask, thereadTeamStateshim, and all related doc sections (team worktrees, team scratchpad,teamTimeoutMinutesconfig). Interactive sessions andcode_with_agentcover the remaining coding-agent use cases without the parallel-decompose / synthesize pattern. - Removed the Work feature entirely:
src/api-work.ts,src/work-ticker.ts,src/code-agents/review-loop*.ts(engine, storage, prompts, types, diff), theWorkdashboard page and its sidebar nav, all Work types and API client methods, and the 3-second polling ticker started insrc/service.ts. Interactive sessions andcode_with_agentcover the remaining AI-coding use cases; the autonomous plan → implement → review loop was not in active use and was accumulating fix-commits. On-disk state under~/.skimpyclaw/logs/review-loop/is left intact for archival. - Removed the standalone digest-edition feature entirely, including its frontend, API routes, config field, seed script, tests, and dashboard sidebar link. Digest generation remains available.
- Discord: added a required documentation process for Discord posting/update workflow changes, including update targets in
README.md, guide pages, and changelog maintenance expectations. - Discord: cron jobs now support
payload.discordThreadIdto target a specific channel or thread for start/digest/completion notifications. Untargeted jobs use the explicitdefaultChannelId; missing, invalid, and failed targets fail closed instead of falling back to a user DM, and transport failures are no longer reported as deleted channels. - Discord:
code_with_agentnow acceptsinteractive: trueto start a bidirectional coding session pinned to a Discord thread. Follow-up messages in the thread are routed directly toclaude --resume(serialized FIFO per thread); sessions persist across gateway restarts in~/.skimpyclaw/logs/code-agents/interactive-sessions.json. - Models:
claude-opusalias now points atclaude-opus-4-7(previously4-6); applies tosetup.ts,api.ts,providers/utils.tsmigration, and theopusshorthand incode-agents/utils.ts. - Interactive sessions: fixed a correctness bug where a subprocess error would strand queued follow-up messages in memory; the queue is now drained with a single notice when the session errors.
- Interactive sessions: shared
buildCodeAgentSpawnEnv()helper insrc/code-agents/utils.tsreplaces three copy-pasteddelete CLAUDECODE / GH_TOKEN / GITHUB_TOKENblocks acrossexecutor.tsandinteractive-resume.ts. - Discord: removed
[discord:diag]debug logs that fired on every inbound message; converted interactive-session intercept to static imports for reduced hot-path overhead. .gitignore: added.playwright-cli/to stop committing local browser-automation artifacts.- Repo cleanup: removed previously tracked Playwright capture artifacts, the unused code-agent worktree helper, stale superpowers/unified-loop planning docs, an obsolete guide-only architecture diagram, the unreferenced root architecture analysis, and the unused docs hero screenshot component/asset.