SessionStart size fix (#154)
VanillaadditionalContext reduced from ~29 KB to ~7 KB, comfortably under Claude Code’s ~20 KB truncation threshold. Task state (ACTIVE TASKS, CURRENT TASK) was being silently lost on most non-trivial projects. Thanks to @21nak for the thorough writeup, measurements, and both PRs.
- #161 workflow.md ToC: Replace full
workflow.mdinjection (~12 KB) with a compact section index that lists each##heading. Applied to all 5 platforms including copilot. AI reads the full file on demand. - #160 remove start.md injection: The
<instructions>block pre-injectedstart.md(~11 KB), but slash commands expand on demand anyway — this was duplicate work. Now removed from 4 platforms; copilot never had it. - Follow-up cleanup:
<ready>text no longer references nonexistent “Steps 1-3 / Step 4” after<instructions>was removed. Orphanedclaude_dir/codex_dir/iflow_dirvariables removed.
OpenCode plugin v1 refactor (#159)
Update OpenCode templates to the v1 plugin API (export default { id, server }). Fixes non-persistent context injection: experimental.chat.messages.transform didn’t write back to history, so injected Trellis context was lost on session reopen. Now routes through chat.message hook with SDK history-based dedupe via metadata.trellis.sessionStart markers. task tool prompt mutation now in-place (args.prompt = ...) because the runtime holds a local reference to the args object. Thanks to @Adamcf123.
Windows encoding fix (#163)
statusline.py crashed on Windows with UnicodeEncodeError: 'gbk' codec can't encode when rendering the · separator in the info line. Both the live hook and the claude template now wrap stdout/stderr in UTF-8 on Windows. Thanks to @xiangagou163.
Features
feat(init): re-init fast path (#157) — When.trellis/already exists,trellis initoffers a streamlined flow instead of the full interactive setup:trellis init --codex→ configure only Codex, skip everything elsetrellis init -u name→ set up developer identity (new device sync)trellis init(bare) → menu: add platform / add developer / full re-init--force/--skip-existing→ bypass fast path, run full init
Bug Fixes
fix(init): skip bootstrap task creation on re-init — re-runningtrellis initno longer creates duplicate bootstrap tasks
Documentation
docs(spec): SessionStart size constraint — platform-integration spec now documents the ~20 KBadditionalContexttruncation threshold with a size budget table, preventing future hooks from silently exceeding the limit
Notes
- RC install:
npm install -g @mindfoldhq/trellis@rc - Please run
trellis updateon an existing project and report any regressions - Session-start hooks have been significantly restructured — if you customized them locally, re-check after update
- Windows users with statusline garbling should also update