@mindfoldhq/trellis 0.5.17 → 0.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/migrations/manifests/0.5.18.json +9 -0
- package/dist/migrations/manifests/0.5.19.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.19.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.20.json +9 -0
- package/dist/migrations/manifests/0.6.0-beta.21.json +9 -0
- package/dist/templates/codex/config.toml +9 -16
- package/dist/templates/trellis/scripts/common/task_store.py +31 -0
- package/dist/templates/trellis/workflow.md +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.5.18",
|
|
3
|
+
"description": "Patch: archived task create collision guard, workflow-state tool routing clarification, and Codex 0.131 multi_agent_v2 timeout bounds.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Bug Fixes:**\n- fix(cli): `task.py create` now rejects slugs that already exist under `.trellis/tasks/archive/**` and prints the archived path (#291).\n- fix(workflow): `[workflow-state:in_progress]` now distinguishes sub-agent types from skills so agents do not call missing `trellis-implement` / `trellis-research` skills (#283).\n- fix(codex): `.codex/config.toml` emits `min_wait_timeout_ms`, `default_wait_timeout_ms`, and `max_wait_timeout_ms` together so Codex CLI 0.131+ accepts merged multi_agent_v2 timeout config (#294).",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Patch on top of 0.5.17. Run `trellis update` to refresh task, workflow, and Codex templates. No migration command is required."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.5.19",
|
|
3
|
+
"description": "Patch: stop writing the [features.multi_agent_v2] block to the generated Codex config.toml so Codex CLI 0.130 and the Codex desktop app can load the config.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Bug Fixes:**\n- fix(codex): `trellis init` / `trellis update` no longer write a `[features.multi_agent_v2]` block to `.codex/config.toml`. Codex CLI changed `features` deserialization between 0.130 and 0.131; the structured table form is only accepted by 0.131+. On 0.130 and earlier — including the Codex CLI bundled in the Codex desktop app — it failed with `data did not match any variant of untagged enum FeatureToml in features.multi_agent_v2`, aborting the entire config load and blocking Codex from starting. Codex's own default for multi_agent_v2 is used instead.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Patch on top of 0.5.18. Run `trellis update` to regenerate `.codex/config.toml` without the multi_agent_v2 block. Tune multi_agent_v2 in your user-level ~/.codex/config.toml if needed."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.19",
|
|
3
|
+
"description": "Beta patch: Pi trellis_subagent native progress cards, durable channel idempotency, task create/archive collision guard, workflow breadcrumb clarification, and Codex 0.131 timeout bounds.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Enhancements:**\n- feat(pi): Pi extension now exposes `trellis_subagent` with native progress cards, `single` / `parallel` / `chain` dispatch modes, throttled live updates, and Trellis-agent validation (#286, #290).\n**Bug Fixes:**\n- fix(core): channel `sendMessage` and `postThread` accept durable `idempotencyKey` values so retries return the original JSONL event and do not duplicate strict-delivery `undeliverable` events.\n- fix(cli): `task.py create` now rejects slugs that already exist under `.trellis/tasks/archive/**` and prints the archived path (#291).\n- fix(workflow): `[workflow-state:in_progress]` now distinguishes sub-agent types from skills so agents do not call missing `trellis-implement` / `trellis-research` skills (#283).\n- fix(codex): `.codex/config.toml` emits `min_wait_timeout_ms`, `default_wait_timeout_ms`, and `max_wait_timeout_ms` together so Codex CLI 0.131+ accepts merged multi_agent_v2 timeout config (#294).\n**Internal:**\n- chore(release): restore the shipped `0.5.17` migration manifest so manifest continuity and update-chain checks pass for the beta release.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Beta patch on top of 0.6.0-beta.18. Run `trellis update` to refresh Pi, Codex, workflow, and task templates. No migration command is required."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.20",
|
|
3
|
+
"description": "Beta patch: bundle the Trellis spec bootstrap skill in the CLI package and clarify Codex CLI 0.131+ timeout-bounds requirements.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Bug Fixes:**\n- fix(skills): `trellis-spec-bootstarp` is now included under `dist/templates/common/bundled-skills/`, so fresh `trellis init` and `trellis update` install the built-in spec bootstrap skill and track its reference files.\n- fix(docs): the v0.6.0-beta.19 changelog now states that the full Codex `multi_agent_v2` timeout-bounds config requires Codex CLI 0.131.0+.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Beta patch on top of 0.6.0-beta.19. Run `trellis update` to install the bundled `trellis-spec-bootstarp` skill. Codex users should use Codex CLI 0.131.0+ for the full multi_agent_v2 timeout-bounds config."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.0-beta.21",
|
|
3
|
+
"description": "Beta patch: stop writing the [features.multi_agent_v2] block to the generated Codex config.toml so Codex CLI 0.130 and the Codex desktop app can load the config.",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**Bug Fixes:**\n- fix(codex): `trellis init` / `trellis update` no longer write a `[features.multi_agent_v2]` block to `.codex/config.toml`. Codex CLI changed `features` deserialization between 0.130 and 0.131; the structured table form is only accepted by 0.131+. On 0.130 and earlier — including the Codex CLI bundled in the Codex desktop app — it failed with `data did not match any variant of untagged enum FeatureToml in features.multi_agent_v2`, aborting the entire config load and blocking Codex from starting. Codex's own default for multi_agent_v2 is used instead.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Beta patch on top of 0.6.0-beta.20. Run `trellis update` to regenerate `.codex/config.toml` without the multi_agent_v2 block. Tune multi_agent_v2 in your user-level ~/.codex/config.toml if needed."
|
|
9
|
+
}
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
#
|
|
6
6
|
# [projects."/abs/path/to/this/repo"]
|
|
7
7
|
# trust_level = "trusted"
|
|
8
|
-
#
|
|
9
|
-
# Without trust, the [features] block below is loaded but disabled.
|
|
10
8
|
|
|
11
9
|
# Keep AGENTS.md as the primary project instruction file.
|
|
12
10
|
project_doc_fallback_filenames = ["AGENTS.md"]
|
|
@@ -19,17 +17,12 @@ project_doc_fallback_filenames = ["AGENTS.md"]
|
|
|
19
17
|
# Codex 0.129+ additionally gates each installed hook behind a one-time
|
|
20
18
|
# `/hooks` TUI review; until the user approves it, the hook stays inactive.
|
|
21
19
|
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
# ceiling is 3,600,000 (1 h).
|
|
32
|
-
[features.multi_agent_v2]
|
|
33
|
-
enabled = true
|
|
34
|
-
max_concurrent_threads_per_session = 6
|
|
35
|
-
min_wait_timeout_ms = 480000
|
|
20
|
+
# NOTE: Trellis intentionally does NOT write a [features.multi_agent_v2]
|
|
21
|
+
# block here. Codex CLI changed `features` deserialization between 0.130
|
|
22
|
+
# and 0.131: the structured table form (with max_concurrent_threads_per_session
|
|
23
|
+
# / *_wait_timeout_ms) is only accepted by 0.131+. On 0.130 and earlier —
|
|
24
|
+
# including the codex CLI bundled inside the Codex desktop app — it fails
|
|
25
|
+
# with `data did not match any variant of untagged enum FeatureToml`, which
|
|
26
|
+
# aborts the entire config load and blocks Codex from starting. Codex's own
|
|
27
|
+
# default for multi_agent_v2 is used instead; tune it in your user-level
|
|
28
|
+
# config if needed.
|
|
@@ -83,6 +83,30 @@ def ensure_tasks_dir(repo_root: Path) -> Path:
|
|
|
83
83
|
return tasks_dir
|
|
84
84
|
|
|
85
85
|
|
|
86
|
+
def _find_archived_task_by_dir_name(tasks_dir: Path, dir_name: str) -> Path | None:
|
|
87
|
+
"""Find an archived task directory with the exact active-task dir name."""
|
|
88
|
+
archive_dir = tasks_dir / DIR_ARCHIVE
|
|
89
|
+
if not archive_dir.is_dir():
|
|
90
|
+
return None
|
|
91
|
+
|
|
92
|
+
for month_dir in sorted(archive_dir.iterdir()):
|
|
93
|
+
if not month_dir.is_dir():
|
|
94
|
+
continue
|
|
95
|
+
candidate = month_dir / dir_name
|
|
96
|
+
if candidate.is_dir():
|
|
97
|
+
return candidate
|
|
98
|
+
|
|
99
|
+
return None
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _repo_relative_path(path: Path, repo_root: Path) -> str:
|
|
103
|
+
"""Format a path relative to the repo root when possible."""
|
|
104
|
+
try:
|
|
105
|
+
return path.relative_to(repo_root).as_posix()
|
|
106
|
+
except ValueError:
|
|
107
|
+
return str(path)
|
|
108
|
+
|
|
109
|
+
|
|
86
110
|
# =============================================================================
|
|
87
111
|
# Sub-agent platform detection + JSONL seeding
|
|
88
112
|
# =============================================================================
|
|
@@ -193,6 +217,13 @@ def cmd_create(args: argparse.Namespace) -> int:
|
|
|
193
217
|
task_dir = tasks_dir / dir_name
|
|
194
218
|
task_json_path = task_dir / FILE_TASK_JSON
|
|
195
219
|
|
|
220
|
+
archived_task_dir = _find_archived_task_by_dir_name(tasks_dir, dir_name)
|
|
221
|
+
if archived_task_dir:
|
|
222
|
+
print(colored(f"Error: Task already archived: {dir_name}", Colors.RED), file=sys.stderr)
|
|
223
|
+
print(f"Archived at: {_repo_relative_path(archived_task_dir, repo_root)}", file=sys.stderr)
|
|
224
|
+
print("Use a new slug if you intend to create a new task.", file=sys.stderr)
|
|
225
|
+
return 1
|
|
226
|
+
|
|
196
227
|
if task_dir.exists():
|
|
197
228
|
print(colored(f"Warning: Task directory already exists: {dir_name}", Colors.YELLOW), file=sys.stderr)
|
|
198
229
|
else:
|
|
@@ -195,6 +195,7 @@ Then run `task.py start <task-dir>` to flip status to in_progress.
|
|
|
195
195
|
commit, including Phase 3.3 spec update and Phase 3.4 commit. -->
|
|
196
196
|
|
|
197
197
|
[workflow-state:in_progress]
|
|
198
|
+
**Tools**: `trellis-implement` / `trellis-research` are sub-agent types only (Task/Agent tool, NOT Skill — there is no skill by these names). `trellis-update-spec` is a skill. `trellis-check` exists as both; prefer the Agent form when verifying after code changes.
|
|
198
199
|
**Flow**: trellis-implement → trellis-check → trellis-update-spec → commit (Phase 3.4) → `/trellis:finish-work`.
|
|
199
200
|
**Main-session default (no override)**: dispatch the `trellis-implement` / `trellis-check` sub-agents — the main agent does NOT edit code by default. Phase 3.4 commit (required, once): after trellis-update-spec, or whenever implementation is verifiably complete, the main agent **drives the commit** — state the commit plan in user-facing text, then run `git commit` — BEFORE suggesting `/trellis:finish-work`. `/finish-work` refuses to run on a dirty working tree (paths outside `.trellis/workspace/` and `.trellis/tasks/`).
|
|
200
201
|
**Sub-agent self-exemption**: if you are already running as `trellis-implement`, implement directly from the loaded task context and do NOT spawn another `trellis-implement`; if you are already running as `trellis-check`, review/fix directly and do NOT spawn another `trellis-check`. The default dispatch rule applies to the main session only.
|
package/package.json
CHANGED