Skip to content

Releases

2026.09.8

Choose a tag to compare

@zlin101 zlin101 released this 28 Sep 08:50
chore(release): prepare 2026.09.8

Trellium 2026.09.7

Choose a tag to compare

@zlin101 zlin101 released this 16 Sep 09:08
docs(vault): accept TASK-0012

2026.09.4

Choose a tag to compare

@zlin101 zlin101 released this 09 Sep 04:26
chore(vault): accept TASK-0007 (owner sign-off); 2026.09.4 tag prepared

2026.09.3: fix(check): enforce state uniqueness, projections, and required files

Choose a tag to compare

@zlin101 zlin101 released this 08 Sep 03:25
Review fixes for the first cycle, released as 2026.09.3:

- duplicate task_id across current task files -> TASK_ID_DUPLICATE error
- duplicate Active Tasks rows for one task -> TASK_RUNTIME_DUPLICATE error
- open task (draft/active/blocked/ready_for_review) without an Active
  Tasks projection row -> TASK_PROJECTION_MISSING error; closed
  (accepted/superseded) and legacy tasks are exempt (fail-closed)
- required-file check now covers project.md, governance.md, and
  tasks/README.md per the 10-vault required-structure list
- drop the unimplemented future max_bytes promise from the cycle plan;
  budget behavior unchanged (only explicit thresholds are enforced)

No new abstractions; three finding codes and one widened constant list.
87 tests total (4 new behaviors + fixture updates).

2026.09.2

Choose a tag to compare

@zlin101 zlin101 released this 04 Sep 06:26
docs(release): document check workflow and migration (2026.09.2)

- README (zh/en): new read-only 'check' section covering state/policy
  blocks, runtime projection, budget measurement, TASK storage, exit
  codes, and legacy fail-closed behavior
- both SKILL.md packages: check bullet for adopted-project validation
- init/VERSION: 2026.09.1 -> 2026.09.2 (CalVer, sole bump this cycle)
- snapshots and embedded scripts regenerated via sync-skills.py
- includes a behavior-preserving git_toplevel -> git_in_worktree
  simplification in trellium.py (reflection-gate cleanup: the toplevel
  value was never consumed) plus a fix so bare-named task files
  (TASK-0001.md, no slug suffix) are discovered per the TASK-*.md glob
  instead of silently skipped under storage checks

Mechanical acceptance recorded on three temporary projects (fresh
adopt exit 0; legacy exit 0 with unresolved warnings; local storage
mismatch detection) and four ablation scenarios (remove state block,
remove policy block, flip runtime row, flip tracked/local).

Trellium 2026.09.0 — upgrade mechanism, multi-task runtime, parked index

Choose a tag to compare

@zlin101 zlin101 released this 29 Aug 11:34

中文摘要:Trellium(原 Agent Native Init)首个正式版本——数据保护式升级机制、多任务运行态(Focus + Active Tasks 指针表)、parked 挂起区、review 台账;Skill 包内嵌安装/升级器,协议内容更新经 --fetch 下发,无需重装 Skill。

Highlights

Data-preserving upgrade mechanism

  • trellium.py baseline / diff / upgrade commands, backed by a version stamp at vault/.agent-init.json (per-file content hashes recorded at install time).
  • Project data is never written by the upgrader: runtime, handoff, decisions, tasks, project, and collaboration are physically outside the write scope.
  • Protocol carriers (governance, index, task templates, the managed AGENTS.md region) refresh only when locally pristine; when both sides changed, a proposal lands in vault/.upgrade/<version>/ for agent semantic merge and user confirmation — local edits are never silently discarded.
  • Per-file opt-in (--only / --skip), clean-git requirement, backups for non-git targets, standalone revertable commits.

Multi-task runtime & parked index

  • runtime.md: Active Task becomes a Focus line + Active Tasks pointer table — one row per parallel task; a status change edits a single row.
  • handoff.md: entry-based, each entry named after its task id (at most 3).
  • New vault/parked.md: cold index of user-parked items (P-xxxx entries with resume triggers), read only when mentioned, cleanup is proposal-only, 60-line/20-entry budget, flows both ways with runtime.

Hot-file discipline & review ledger

  • Recent Changes capped at 10 entries (overflow merges into task-file execution history); update discipline codified: fixed section order, one item per line, single-line replacement.
  • Review ledger (TASK-xxxx-review.md): numbered findings with open / fixed / wont-fix / needs-discussion statuses; one batched write per round instead of message ping-pong; converged ledgers archive into the task's Execution Record.

Skill packages as the distribution channel

  • trellium.py ships inside both Skill packages (skills/trellium / skills/trellium-zh), auto-distributed by sync-skills.py and verified by CI; each package installs its own locale templates.
  • --fetch resolves the latest tagged release via the GitHub tags API, caches it under ~/.cache/trellium/<tag>/, and re-executes the fetched updater — protocol-content updates no longer require reinstalling the Skill. Downgrades are refused.
  • Rebrand: Agent Native Init → Trellium. Internal compatibility identifiers (AGENTS.md marker strings, stamp filename, backup directory) are unchanged — existing adopted projects need zero migration.

Upgrading an adopted project

Projects adopted before versioning: run baseline once, then:

python3 trellium.py diff /path/to/project              # read-only report
python3 trellium.py upgrade /path/to/project --apply   # safe subset + conflict proposals
# agent merges proposals semantically; user confirms
python3 trellium.py upgrade /path/to/project --complete

Skill users: run assets/trellium.py from the installed package, or add --fetch to use the latest release directly.

Installing

python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-installer/scripts/install-skill-from-github.py" \
  --repo zlin101/trellium --path skills/trellium-zh   # or skills/trellium for English

Verification

  • 42 tests green (python3 -m unittest discover -s scripts -p 'test_*.py')
  • Protocol snapshots and embedded scripts in sync (python3 scripts/sync-skills.py --check)
  • End-to-end verified: adopt → project evolution → upstream drift → diff → upgrade --apply (proposal + backup, data untouched) → merge → complete → converged diff; and a real --fetch against this published tag

🤖 Generated with Claude Code