taskchef 7.15.2 → 7.15.4

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskchef",
3
- "version": "7.15.2",
3
+ "version": "7.15.4",
4
4
  "description": "Dispatch work from a data-only workspace to visible Codex project tasks.",
5
5
  "author": {
6
6
  "name": "Favo Yang",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "websiteURL": "https://github.com/favoyang/taskchef",
31
31
  "defaultPrompt": [
32
- "$taskchef-bootstrap Set up TaskChef in this folder.",
32
+ "$taskchef-bootstrap Set up TaskChef and index my Codex projects.",
33
33
  "$taskchef-delegate Dispatch this request to the right project.",
34
34
  "$taskchef-executor Execute this delegated TaskChef assignment.",
35
35
  "$taskchef-copilot Explain TaskChef outcomes and recommend the next action."
package/README.md CHANGED
@@ -36,7 +36,7 @@ puts the `taskchef` CLI on `PATH`. TaskChef installs no hooks, schedules,
36
36
  daemons, login items, system services, or background identity search and needs
37
37
  no elevated permissions.
38
38
 
39
- ## Bootstrap and configure
39
+ ## Bootstrap and index projects
40
40
 
41
41
  Ask the bootstrap skill to create the per-user dispatcher:
42
42
 
@@ -48,17 +48,42 @@ The canonical workspace is `~/.agents/taskchef`. TaskChef owns only:
48
48
 
49
49
  ```text
50
50
  AGENTS.md managed dispatcher instructions plus user additions
51
- taskchef.json schema-2 configured projects and routing metadata
51
+ taskchef.json schema-2 Codex project index and delegation metadata
52
52
  tasks.jsonl one task snapshot per line (schema 9; schema 4-8 migration supported)
53
53
  ```
54
54
 
55
- List or change routing targets conversationally:
55
+ Index or inspect Codex projects conversationally:
56
56
 
57
57
  ```text
58
- $taskchef-bootstrap List my configured TaskChef projects.
59
- $taskchef-bootstrap Add /workspace/payments as payments. It owns authorization, capture, refunds, and retries.
58
+ $taskchef-bootstrap List my indexed Codex projects.
59
+ $taskchef-bootstrap Index /workspace/payments as payments. It owns authorization, capture, refunds, and retries.
60
+ $taskchef-bootstrap Reindex after the Codex projects I added today.
60
61
  ```
61
62
 
63
+ TaskChef indexes existing Codex projects for delegation. The index stores
64
+ canonical paths and routing metadata; it never indexes repository contents or
65
+ creates another kind of project. For a folder already saved as a local Codex
66
+ project, the bootstrap skill requires an exact canonical-path match before
67
+ writing and verifying its TaskChef index entry. For a new folder, or an existing
68
+ folder not yet saved by Codex, it creates the directory only when explicitly
69
+ requested, opens the canonical path with the validated Codex Desktop CLI's
70
+ `codex app <path>` mechanism, re-lists native projects, and requires the same
71
+ exact match before indexing it. An open request without a verified native
72
+ project is reported as partial setup, not delegation-ready.
73
+
74
+ Reindexing catches TaskChef up with newly saved Codex projects by comparing
75
+ exact canonical paths and indexing missing requested projects. It preserves
76
+ existing curated entries and does not silently remove projects or overwrite
77
+ metadata.
78
+
79
+ Codex CLI resolution follows the same contract as
80
+ `workspace init --register-codex`: an explicit `--codex-cli` path wins, then
81
+ `TASKCHEF_CODEX_CLI`; either must be executable and support `app --help`.
82
+ Without an override, TaskChef prefers a validated `codex` PATH candidate under
83
+ `Contents/Resources`; otherwise it validates only the first executable `codex`
84
+ in PATH order. It does not assume an arbitrary shell command or hard-code an
85
+ application bundle location.
86
+
62
87
  Or use the CLI:
63
88
 
64
89
  ```sh
@@ -67,10 +92,20 @@ taskchef project add /workspace/payments --name payments \
67
92
  taskchef project list
68
93
  ```
69
94
 
95
+ The CLI command writes TaskChef metadata only; it does not query Codex. Before
96
+ using it directly, verify that `/workspace/payments` exactly matches the
97
+ canonical path of an existing local Codex project. The bootstrap skill performs
98
+ that native-project check for you.
99
+
70
100
  A project may advertise several GitHub repositories with repeated
71
- `--github-repo`. TaskChef accepts Git roots and ordinary local folders on the
72
- same execution host. Unsupported configuration schemas are rejected and are
73
- never rewritten automatically.
101
+ `--github-repo`. Explicit values replace automatic origin detection and form
102
+ the complete advertised list, so include the origin when it should remain
103
+ routable. A managed `*-workspace` should advertise every relevant child or
104
+ subrepository canonical GitHub URL, plus the workspace repository itself when
105
+ applicable, so issue and pull-request links select the correct Codex project.
106
+ TaskChef accepts Git roots and ordinary local folders on the same execution
107
+ host. Unsupported configuration schemas are rejected and are never rewritten
108
+ automatically.
74
109
 
75
110
  ## Dispatch
76
111
 
package/docs/workflows.md CHANGED
@@ -12,7 +12,7 @@ research.
12
12
  | --- | --- |
13
13
  | `skills/taskchef-delegate/SKILL.md` | Split, route, record-before-create, create, return. |
14
14
  | `skills/taskchef-executor/SKILL.md` | Own, self-link, execute, and report every executor turn. |
15
- | `skills/taskchef-bootstrap/SKILL.md` | Initialize current workspace and configure projects. |
15
+ | `skills/taskchef-bootstrap/SKILL.md` | Initialize the workspace and maintain the Codex project index. |
16
16
  | `skills/taskchef-copilot/SKILL.md` | Explain normalized cached briefs and coordinate safe next actions. |
17
17
  | `src/mcp.js` | Dashboard ensure, four primary lifecycle tools, one deprecated alias, shutdown ownership, and MCP annotations. |
18
18
  | `src/delegation.js` | UUID marker, concise executor-skill invocation shape, and creation-failure handling. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskchef",
3
- "version": "7.15.2",
3
+ "version": "7.15.4",
4
4
  "description": "A non-blocking interactive dispatcher for visible Codex tasks.",
5
5
  "license": "MIT",
6
6
  "author": "Favo Yang",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: taskchef-bootstrap
3
- description: "Initialize, diagnose, or refresh TaskChef dispatcher workspaces, project configuration, task history, and managed AGENTS.md instructions. Use when creating a TaskChef workspace, adding, importing, listing, or removing configured projects, running TaskChef doctor, or repairing dispatcher setup. Do not dispatch user work or report on executor threads."
3
+ description: "Initialize, diagnose, or refresh TaskChef dispatcher workspaces, the Codex project index, task history, and managed AGENTS.md instructions. Use when creating a TaskChef workspace, indexing or reindexing Codex projects, importing, listing, or removing indexed projects, running TaskChef doctor, or repairing dispatcher setup. Do not dispatch user work or report on executor threads."
4
4
  ---
5
5
 
6
6
  # TaskChef Bootstrap
@@ -50,28 +50,100 @@ all deterministic workspace operations.
50
50
  End without dispatching unless the user
51
51
  separately requested work.
52
52
 
53
- ## Configure projects
54
-
55
- 1. Reuse the native Codex project list from initialization when available.
56
- Configure only
57
- projects local to the TaskChef workspace's execution host. Remote connection
58
- projects are outside the v1 contract.
59
- Never configure the TaskChef dispatcher workspace or a directory containing
60
- it as a routing target.
61
- 2. Add one project with `project add <path>`, normally supplying `--name` and a
62
- curated `--description`. The CLI detects Git status, exact Git root, and a
63
- canonical GitHub `origin`. Repeat `--github-repo <url>` to advertise several
64
- repositories, or use `--no-github` for an empty list. A managed
65
- `*-workspace` project must list all of its child or sub-repositories so issue
66
- and pull-request URLs route to that workspace.
67
- 3. Bulk import with `project import <file|-> --json`. Input is a JSON array of
53
+ ## Index Codex projects
54
+
55
+ TaskChef's project index is the local list of Codex projects available for
56
+ delegation. It stores canonical paths and routing metadata such as curated
57
+ names, descriptions, Git status, and GitHub repositories. It does not index
58
+ repository contents or create a second kind of project.
59
+
60
+ Index only Codex projects local to the TaskChef workspace's execution host.
61
+ Remote connection projects are outside the v1 contract. Never index the
62
+ TaskChef dispatcher workspace or a directory containing it; the dispatcher is
63
+ the inbox, while indexed Codex projects own delegated work.
64
+
65
+ ### Existing Codex project
66
+
67
+ 1. List native local Codex projects once. Resolve the requested existing folder
68
+ with `realpath` and require an exact canonical-path match in that list. A
69
+ similar name, a parent or child directory, and a remote connection project
70
+ are not matches.
71
+ 2. Index the exact path with the existing `project add <canonical-path> --name
72
+ <curated-name> --description <curated-description> --json` CLI workflow.
73
+ Despite the command's historical `add` name, this writes one TaskChef index
74
+ entry for an existing Codex project. The CLI detects Git status, the exact
75
+ Git root, and a canonical GitHub `origin` when no repository option is
76
+ supplied. Repeated `--github-repo <canonical-url>` arguments replace that
77
+ detection and form the complete advertised repository list, so repeat the
78
+ origin explicitly when it should remain routable. Use `--no-github` when the
79
+ user intentionally wants an empty list.
80
+ 3. Run `project list --json` and require one indexed entry with the exact
81
+ canonical path and intended routing metadata. Only then report that the
82
+ Codex project is ready for delegation through TaskChef.
83
+
84
+ ### New or not-yet-saved Codex folder
85
+
86
+ 1. Create the folder only when the user explicitly asked to create it. Preserve
87
+ unrelated existing contents. Do not initialize Git unless requested or
88
+ clearly required by the user's broader task. Resolve the resulting existing
89
+ folder with `realpath`.
90
+ 2. Register or open that exact canonical folder with the supported
91
+ `<validated-codex-cli> app <canonical-path>` mechanism. Reuse a validated CLI
92
+ path supplied by the current Codex Desktop environment when available. Use
93
+ the same resolver contract as `workspace init --register-codex` otherwise:
94
+ an explicit `--codex-cli` path takes precedence over `TASKCHEF_CODEX_CLI`;
95
+ each must resolve to an executable that passes `app --help`. Without an
96
+ override, inspect `codex` executables from `PATH`, prefer a validated
97
+ candidate whose path contains `Contents/Resources`, and otherwise validate
98
+ only the first executable `codex` in PATH order. Never assume an arbitrary
99
+ shell `codex`, invoke `codex add`, or hard-code an application bundle path.
100
+ 3. Re-list native local Codex projects and require an exact canonical-path
101
+ match. Opening is a request, not proof that Codex saved the project. If the
102
+ exact match is absent, report that the folder was opened or registration was
103
+ requested but Codex registration remains unverified; do not index it in
104
+ TaskChef or call it delegation-ready.
105
+ 4. After Codex verification, index the project as in the existing-project path.
106
+ Run `project list --json` and verify the exact TaskChef index entry. Report
107
+ delegation readiness only after both the native Codex match and TaskChef
108
+ indexing are verified.
109
+
110
+ For a managed `*-workspace` Codex project, advertise every relevant child or
111
+ subrepository with repeated `--github-repo <canonical-github-url>` arguments,
112
+ including the workspace repository itself when it can own issue or pull-request
113
+ links. These explicit values are the complete list; automatic origin detection
114
+ does not supplement them. This lets TaskChef route each canonical GitHub URL to
115
+ the correct workspace rather than guessing from the folder name.
116
+
117
+ ### Reindex after Codex changes
118
+
119
+ When the user asks TaskChef to reindex or catch up after saving more projects in
120
+ Codex, list native local Codex projects once and run `project list --json` once
121
+ before mutation. Compare exact canonical paths, then index each requested
122
+ eligible Codex project that is missing from TaskChef by following the
123
+ appropriate path above, sharing the batch verification instead of relisting
124
+ after each write. After all additions, run `project list --json` once more and
125
+ verify every intended canonical path and its routing metadata before reporting
126
+ the index as current.
127
+
128
+ Do not call `project add` for a path already in the TaskChef index; it rejects
129
+ duplicate paths and must not be presented as a metadata refresh. Preserve
130
+ existing curated entries, and do not remove entries merely because they are
131
+ absent from the current Codex list. Refreshing or removing an existing entry
132
+ requires an explicit user request and the project-management workflows below.
133
+
134
+ ## Manage the project index
135
+
136
+ 1. Bulk import with `project import <file|-> --json`. Input is a JSON array of
68
137
  objects containing `path` plus optional `name`, `description`, and
69
- `githubRepos`, which is always a JSON array of GitHub repository URLs. Import
70
- merges by canonical path, preserves an existing name or description when
71
- omitted, and unions existing and imported repository lists without
72
- duplicates. Use `--replace` only when the user explicitly requests
73
- replacement.
74
- 4. Inspect configured projects with `project list --json`. Remove by name with
138
+ `githubRepos`, which is always a JSON array of GitHub repository URLs. Before
139
+ importing, list native local Codex projects once, canonicalize every input
140
+ path, and require an exact local-project match for every entry. Reject or
141
+ report every unmatched path instead of indexing it. Import merges by
142
+ canonical path, preserves an existing name or description when omitted, and
143
+ unions existing and imported repository lists without duplicates. Use
144
+ `--replace` only when the user explicitly requests replacement. Run
145
+ `project list --json` afterward and verify every imported entry.
146
+ 2. Inspect indexed projects with `project list --json`. Remove by name with
75
147
  `project remove`. Existing task entries keep their project snapshots.
76
148
 
77
149
  Example managed-workspace import entry: