harnex 0.3.3 → 0.4.0

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,234 +1,132 @@
1
1
  ---
2
2
  name: harnex-chain
3
- description: End-to-end workflow from issue to shipped plans via harnex agents. Covers mapping, plan extraction, and the serial plan review implement review fix loop.
3
+ description: End-to-end workflow from issue to shipped plans via harnex agents. Covers mapping, plan extraction, and the serial plan -> review -> implement -> review -> fix loop.
4
4
  ---
5
5
 
6
6
  # Chain Implement
7
7
 
8
- Take an issue from design through to shipped code via harnex agents. Designed
9
- so the user can walk away after triggering the chain.
8
+ Take an issue from design through to shipped code via harnex agents. This
9
+ skill defines chain semantics (phase order, quality gates, escalation), while
10
+ spawn/watch/stop mechanics come from `harnex-dispatch`.
10
11
 
11
- ## Guiding Principle
12
+ For naming (`--tmux <same-as-id>`) and worktree operational rules, use
13
+ `harnex-dispatch`.
14
+
15
+ ## Orchestrator Role
12
16
 
13
- Keep each agent invocation inside its **safe context zone** (< 40% of context
14
- window). Agents produce their smartest work when they aren't overloaded. Large
15
- issues get split into smaller plans because massive plans degrade agent output.
17
+ - Claude is the orchestrator only: dispatches sessions, watches progress,
18
+ decides stop/resume/escalate, and enforces phase gates.
19
+ - Codex performs all production work: plan writing, plan reviews,
20
+ implementation, code reviews, and fixes.
21
+ - The orchestrator does not implement or review directly except emergency
22
+ intervention to recover a blocked chain.
23
+
24
+ ## Guiding Principle
16
25
 
17
- **Scale the process to the work:**
18
- - Small issue, one coherent change skip mapping, write one plan, implement
19
- - Medium issue, a few moving parts → one plan with phases is fine
20
- - Large issue, many files/seams/sequencing → mapping plan + extracted plans
26
+ Keep each agent invocation inside its safe context zone (< 40% of context
27
+ window). Large issues should be split into smaller plans so each worker has a
28
+ narrow, testable scope.
21
29
 
22
- The phases below describe the **full** workflow. Skip phases that aren't needed.
30
+ Scale to the issue size:
31
+ - Small issue: skip mapping, one plan, one serial loop.
32
+ - Medium issue: one phased plan is usually enough.
33
+ - Large issue: mapping plus extracted thin-layer plans.
23
34
 
24
- ## Workflow Overview
35
+ ## Workflow Overview (Serial Default)
25
36
 
26
37
  ```
27
- Issue (user + agent chat)
38
+ Issue (user + orchestrator chat)
28
39
 
29
- [Mapping Plan] [Map Review] [Fix Map] skip if scope is small
40
+ [Mapping Plan] -> [Map Review] -> [Fix Map] <- optional for large scope
30
41
 
31
- [Plan Extraction] thin-layer plans skip if one plan suffices
42
+ [Plan Extraction] -> thin-layer plans <- optional if one plan suffices
32
43
 
33
- Per plan (serial):
34
- Plan (codex) Plan Review (claude) Fix Plan (codex)
35
- Implement (codex) Code Review (claude) Fix Code (codex)
36
- Commit next plan
44
+ Per plan (serial on main):
45
+ Plan -> Plan Review -> Fix Plan
46
+ -> Implement -> Code Review -> Fix Code
47
+ -> Commit -> next plan
37
48
  ```
38
49
 
39
- ### Why two review phases?
40
-
41
- The plan review catches design problems before code is written. The code review
42
- catches implementation problems after. Skipping plan review leads to wasted
43
- implementation cycles when the plan itself is flawed. This was validated in
44
- production — adversarial plan/review cycles consistently produce better outcomes
45
- than jumping straight to implementation.
50
+ The serial loop is the default path. For each step, use `harnex-dispatch`
51
+ Fire & Watch for lifecycle operations and stop-after-commit timing.
46
52
 
47
53
  ## Phase 1: Issue
48
54
 
49
- The user and the agent have a detailed design chat. From that, a structured
50
- issue is filed (e.g., `koder/issues/NN_label/INDEX.md`).
51
-
52
- The issue captures:
53
- - The problem and motivation
55
+ User and orchestrator converge on a concrete issue document
56
+ (e.g., `koder/issues/NN_label/INDEX.md`) with:
57
+ - Problem and motivation
54
58
  - Design decisions and trade-offs
55
59
  - Acceptance criteria
56
- - Known open questions
57
-
58
- This phase is interactive — the user is present and driving.
59
-
60
- ## Phase 2: Mapping Plan (optional — for large issues)
60
+ - Open questions
61
61
 
62
- Skip if the issue is small enough for a single implementation plan. Use when
63
- the scope crosses many files, involves sequencing constraints, or has open
64
- design questions that would block an away user.
62
+ ## Phase 2: Mapping Plan (Optional)
65
63
 
66
- A **mapping plan** doesn't produce code. It produces a detailed technical map:
67
- - Exact files, functions, and seams involved
68
- - Sequencing constraints (what depends on what)
69
- - Questions that need user input before implementation
64
+ Use when scope is broad, has sequencing constraints, or still contains
65
+ user-blocking questions. Skip for small, coherent issues.
70
66
 
71
- ### Why mapping is its own phase
72
-
73
- - **Surfaces blockers early** — user-blocking decisions come out here, not
74
- halfway through implementation
75
- - **Creates shared context** — the mapping plan becomes the reference for all
76
- subsequent plans
77
- - **Separates research from decomposition** — mapping agent focuses on
78
- understanding, extraction focuses on scoping
79
-
80
- ### Dispatch
81
-
82
- ```bash
83
- harnex run codex --id cx-map-NN --tmux cx-map-NN \
84
- --context "Write a mapping plan for koder/issues/NN_label/INDEX.md. \
85
- Produce a detailed technical map: files, seams, sequencing, open questions. \
86
- Write to koder/plans/NN_mapping.md."
87
- ```
88
-
89
- Poll every 30s with `harnex pane --id cx-map-NN --lines 20`.
90
-
91
- ### Map Review
92
-
93
- ```bash
94
- harnex run claude --id cl-rev-map-NN --tmux cl-rev-map-NN \
95
- --context "Review koder/plans/NN_mapping.md. Check: unresolved user questions? \
96
- Accurate file/function analysis? Sequencing constraints identified? \
97
- Write review to koder/reviews/NN_mapping.md"
98
- ```
67
+ Outputs:
68
+ - Technical map of files/functions/seams
69
+ - Sequencing constraints
70
+ - Explicit user-blocking questions
99
71
 
100
- **If user-blocking questions exist**, stop the chain and surface them.
72
+ Gate:
73
+ - If map review finds user-blocking questions, stop the chain and return to
74
+ user.
101
75
 
102
- ## Phase 3: Plan Extraction (optional)
76
+ ## Phase 3: Plan Extraction (Optional)
103
77
 
104
- Skip if the mapping plan describes one coherent change, or if you skipped
105
- mapping entirely.
78
+ Use when the mapping plan should be decomposed into thin-layer plans.
79
+ Each extracted plan must be one independently testable capability and ordered
80
+ by dependency.
106
81
 
107
- Extract thin-layer implementation plans from the mapping plan. Each plan is:
108
- - **One capability** — testable independently
109
- - **Self-contained** — the implementing agent reads only that plan file
110
- - **Ordered** — respects sequencing constraints from the mapping plan
111
-
112
- ```bash
113
- harnex run codex --id cx-extract-NN --tmux cx-extract-NN \
114
- --context "Read koder/plans/NN_mapping.md. Extract thin-layer plans. \
115
- Each plan is one independently testable capability. Write to koder/plans/."
116
- ```
117
-
118
- ## Phase 4: Serial Plan Loop
119
-
120
- Each plan goes through the full cycle. This is the walk-away part.
121
-
122
- ### Per-plan cycle
123
-
124
- ```
125
- 1. Plan (codex) — write/refine the plan if not already extracted
126
- 2. Plan Review (claude) — check plan against codebase, flag issues
127
- 3. Fix Plan (codex) — address review findings
128
- 4. Implement (codex) — write code, run tests, commit per phase
129
- 5. Code Review (claude) — review implementation against plan
130
- 6. Fix Code (codex) — address review findings if needed
131
- 7. Commit — final state on master
132
- 8. → next plan
133
- ```
134
-
135
- Steps 1-3 can be skipped if the plan was already extracted and reviewed during
136
- the mapping phase, or if the issue is simple enough that the plan is obviously
137
- correct.
138
-
139
- ### Dispatch pattern
140
-
141
- For each plan NN, use the Fire & Watch pattern from the `harnex-dispatch` skill:
142
-
143
- ```bash
144
- # Steps 1-3: Plan convergence (skip if plan already extracted and reviewed)
145
- harnex run codex --id cx-plan-NN --tmux cx-plan-NN \
146
- --context "Refine koder/plans/NN_label.md based on current codebase state."
147
- # Poll every 30s: harnex pane --id cx-plan-NN --lines 20
148
- # When done: harnex stop --id cx-plan-NN
149
-
150
- harnex run claude --id cl-rev-plan-NN --tmux cl-rev-plan-NN \
151
- --context "Review koder/plans/NN_label.md. Check: accurate file/function refs? \
152
- Sequencing correct? Acceptance criteria testable? \
153
- Write review to koder/reviews/NN_label.md"
154
- # Poll → stop → if NEEDS FIXES, dispatch cx-fix-plan-NN
155
-
156
- # Step 4: Implement
157
- harnex run codex --id cx-impl-NN --tmux cx-impl-NN \
158
- --context "Implement koder/plans/NN_label.md. Run tests when done. Commit after each phase."
159
- # Poll every 30s: harnex pane --id cx-impl-NN --lines 20
160
- # When done: harnex stop --id cx-impl-NN
161
-
162
- # Steps 5-6: Code review + fix
163
- harnex run claude --id cl-rev-NN --tmux cl-rev-NN \
164
- --context "Review implementation of plan NN against koder/plans/NN_label.md. \
165
- Write review to koder/reviews/NN_label.md"
166
- # Poll every 30s: harnex pane --id cl-rev-NN --lines 20
167
- # When done: harnex stop --id cl-rev-NN
168
- # If NEEDS FIXES → dispatch cx-fix-NN
169
- # If PASS → next plan
170
-
171
- # Fix (if needed)
172
- harnex run codex --id cx-fix-NN --tmux cx-fix-NN \
173
- --context "Fix findings in koder/reviews/NN_label.md for plan NN. Run tests. Commit."
174
- # Poll, stop, re-review if needed
175
- ```
176
-
177
- ### Poll cadence
178
-
179
- Checking is cheap — 20 lines is a few hundred bytes:
180
-
181
- | Elapsed | Interval | Rationale |
182
- |---------|----------|-----------|
183
- | 0–2 min | 30s | Catch fast completions and early errors |
184
- | 2–10 min | 60s | Steady state for typical work |
185
- | 10+ min | 120s | Long-running, reduce noise |
186
-
187
- ```bash
188
- harnex pane --id cx-impl-NN --lines 20
189
- ```
82
+ ## Phase 4: Serial Plan Loop (Default)
190
83
 
191
- ### Naming conventions
84
+ Per plan:
85
+ 1. Plan (Codex)
86
+ 2. Plan Review (Codex)
87
+ 3. Fix Plan (Codex) when review finds issues
88
+ 4. Implement (Codex)
89
+ 5. Code Review (Codex)
90
+ 6. Fix Code (Codex) when review finds issues
91
+ 7. Commit and advance to next plan
192
92
 
193
- | Step | ID pattern | Example |
194
- |------|-----------|---------|
195
- | Mapping plan | `cx-map-NN` | `cx-map-42` |
196
- | Map review | `cl-rev-map-NN` | `cl-rev-map-42` |
197
- | Plan extraction | `cx-extract-NN` | `cx-extract-42` |
198
- | Plan write/refine | `cx-plan-NN` | `cx-plan-184` |
199
- | Plan review | `cl-rev-plan-NN` | `cl-rev-plan-184` |
200
- | Plan fix | `cx-fix-plan-NN` | `cx-fix-plan-184` |
201
- | Implement | `cx-impl-NN` | `cx-impl-184` |
202
- | Code review | `cl-rev-NN` | `cl-rev-184` |
203
- | Code fix | `cx-fix-NN` | `cx-fix-184` |
93
+ Gating rules:
94
+ - Do not start implementation with unresolved P1 plan-review findings.
95
+ - Do not advance to the next plan with unresolved P1 code-review findings.
96
+ - Keep plan-fix and code-fix loops active until the review gate passes.
204
97
 
205
- **Rule**: Fresh instance per step. Don't reuse agents across steps — clean
206
- context avoids bleed.
98
+ ## Parallel Variant
207
99
 
208
- ## Worktree Option
100
+ Parallelism is allowed only for planning passes. Keep implementation serial
101
+ on `main` unless the user explicitly requests worktrees.
209
102
 
210
- By default, all work happens serially on master. Use worktrees only when:
211
- - The user explicitly requests isolation
212
- - You need to work on something else while a plan is being implemented
103
+ Approved parallel lanes:
104
+ - Parallel plan-writing sessions (one plan file per Codex session)
105
+ - Parallel plan-review sessions (one review file per Codex session)
213
106
 
214
- See the `harnex-dispatch` skill for worktree setup and caveats.
107
+ Capacity rule:
108
+ - Run at most 5 concurrent Codex sessions total across all active lanes
109
+ (global cap, not per lane).
215
110
 
216
- ## When Things Go Wrong
111
+ Lifecycle rule:
112
+ - Use `harnex-dispatch` Fire & Watch, including poll cadence and stop timing.
217
113
 
218
- **Plan review finds user-blocking question**: Stop the chain. Surface the
219
- question. Resume after the user answers. This is exactly what the plan review
220
- phase is for catching these before implementation begins.
114
+ Implementation rule:
115
+ - Serial implementation on `main` is the default.
116
+ - Parallel implementation is allowed only with explicit user request and
117
+ worktree isolation (see `harnex-dispatch` worktree guidance).
221
118
 
222
- **Plan review finds P1**: Dispatch a plan fix agent (`cx-fix-plan-NN`).
223
- Re-review the plan. Do not proceed to implementation with unresolved P1s.
119
+ ## Unattended Monitoring
224
120
 
225
- **Code review finds P1**: Dispatch a code fix agent (`cx-fix-NN`). Re-review
226
- after fix. Do not skip to the next plan with unresolved P1s.
121
+ For overnight, unattended, or >30-minute steps, use `harnex-buddy`.
122
+ Buddy activation criteria, monitoring loop (poll/stall/nudge), return channel
123
+ via `$HARNEX_SPAWNER_PANE`, and buddy cleanup are canonical in
124
+ `harnex-buddy`.
227
125
 
228
- **Implementation diverges from plan**: The implementer may discover the plan
229
- is wrong. If the divergence is minor (P3), note it and continue. If major,
230
- stop and re-plan.
126
+ ## Failure and Escalation
231
127
 
232
- **Agent gets stuck**: Check `harnex pane --lines 20`. If blocked on a
233
- permission prompt or trust dialog, intervene. If confused, stop the agent and
234
- dispatch a fresh one with clearer instructions.
128
+ - User-blocking question in plan/map review: stop and ask user; do not guess.
129
+ - Review returns P1: dispatch the corresponding fix step and re-review.
130
+ - Implementation diverges materially from plan: stop and re-plan.
131
+ - Worker is stuck or blocked by prompt/dialog: intervene, then continue with a
132
+ fresh worker if needed.
@@ -1,11 +1,96 @@
1
1
  ---
2
2
  name: harnex-dispatch
3
3
  description: Fire & Watch — the standard pattern for launching and monitoring harnex agent sessions. Use when dispatching implementation, review, or fix agents.
4
+ allowed-tools: Bash(harnex *)
4
5
  ---
5
6
 
6
7
  # Dispatch — Fire & Watch
7
8
 
8
9
  Every harnex agent dispatch follows three phases: **spawn**, **watch**, **stop**.
10
+ Before spawn, always decide the return channel and message contract.
11
+
12
+ `harnex-dispatch` is the canonical home for lifecycle mechanics only.
13
+ For orchestrator role boundaries, phase gates, and chain-level parallel policy,
14
+ see `harnex-chain`.
15
+
16
+ ## Detect your context
17
+
18
+ Check env vars first to know whether you are inside a harnex-managed session:
19
+
20
+ | Variable | Meaning |
21
+ |----------|---------|
22
+ | `HARNEX_SESSION_CLI` | Which CLI this session is (`claude` or `codex`) |
23
+ | `HARNEX_ID` | Your session ID |
24
+ | `HARNEX_SESSION_REPO_ROOT` | Repo root the session is scoped to |
25
+ | `HARNEX_SESSION_ID` | Internal harnex instance ID |
26
+ | `HARNEX_SPAWNER_PANE` | tmux pane ID (`%N`) of the invoker |
27
+
28
+ If these are present, you can coordinate peers directly with `harnex send`,
29
+ `harnex status`, and `harnex wait`. `HARNEX_SPAWNER_PANE` is the fallback
30
+ return channel to the invoker via `tmux send-keys`.
31
+
32
+ ## Return Channel First
33
+
34
+ Define how results come back before delegating work.
35
+
36
+ - Inside harnex: require peers to send final results back to your own
37
+ `HARNEX_ID` via `harnex send --id "$HARNEX_ID" ...`
38
+ - Outside harnex: require a concrete return path (for example a specific file
39
+ in the repo or an explicit tmux pane message)
40
+
41
+ Do not delegate work without an explicit completion contract.
42
+
43
+ ## Send Hygiene
44
+
45
+ ### Keep prompts short; reference files for long instructions
46
+
47
+ ```bash
48
+ cat > /tmp/task-impl-NN.md <<'EOF'
49
+ Detailed instructions here...
50
+ EOF
51
+
52
+ harnex send --id cx-impl-NN --message "Read /tmp/task-impl-NN.md. Reply with final status to harnex id $HARNEX_ID."
53
+ ```
54
+
55
+ Long inline messages are brittle in PTYs. Use plan/issue files or temp files.
56
+
57
+ ### Require explicit reply instruction in every delegated task
58
+
59
+ ```bash
60
+ harnex send --id cl-rev-NN --message "Review koder/plans/NN_name.md. When done send findings to harnex id $HARNEX_ID."
61
+ ```
62
+
63
+ ## Relay Headers
64
+
65
+ Messages sent from one harnex session to another are auto-wrapped:
66
+
67
+ ```
68
+ [harnex relay from=<cli> id=<sender_id> at=<timestamp>]
69
+ <message body>
70
+ ```
71
+
72
+ When you receive a relay header, treat it as an actionable prompt from the
73
+ peer. Respond using `harnex send --id <sender_id> ...` unless instructed
74
+ otherwise.
75
+
76
+ ## Practical Reply/Delegate Patterns
77
+
78
+ Reply to a peer:
79
+
80
+ ```bash
81
+ harnex send --id <TARGET_ID> --message "<result>"
82
+ ```
83
+
84
+ Delegate and force a return path:
85
+
86
+ ```bash
87
+ harnex send --id cx-impl-NN --message "$(cat <<EOF
88
+ Implement koder/plans/NN_name.md.
89
+ Run tests before finishing.
90
+ When done, send one summary line back to harnex id $HARNEX_ID.
91
+ EOF
92
+ )"
93
+ ```
9
94
 
10
95
  ## 1. Spawn
11
96
 
@@ -34,11 +119,27 @@ harnex run codex --id cx-impl-NN --tmux cx-impl-NN \
34
119
  --context "Read and execute /tmp/task-impl-NN.md"
35
120
  ```
36
121
 
122
+ ### Built-in monitoring (`--watch`)
123
+
124
+ For unattended implementation runs where you only need stall policy (not
125
+ Claude-side reasoning), bundle dispatch and monitoring in one command:
126
+
127
+ ```bash
128
+ harnex run codex --id cx-impl-42 --tmux cx-impl-42 --watch --preset impl
129
+ ```
130
+
131
+ `--preset impl` applies the standard 8m stall threshold with one forced resume.
132
+ Trade-off: `--watch` is foreground-blocking and policy-only (`stall-after` +
133
+ `max-resumes`). Use pane polling (and buddy when needed) for richer reasoning.
134
+
37
135
  ## 2. Watch
38
136
 
39
137
  Poll the agent's screen with `harnex pane`. Checking is cheap — a 20-line
40
138
  tail is a few hundred bytes.
41
139
 
140
+ For structured orchestration, prefer `harnex events --id <id>` over pane-text
141
+ scraping.
142
+
42
143
  **Default: poll every 30 seconds.** This is fine for most work. The check
43
144
  itself costs almost nothing and catches completion quickly.
44
145
 
@@ -81,6 +182,8 @@ harnex pane --id cx-impl-NN --lines 20 --follow
81
182
 
82
183
  When the agent is done (at prompt, work committed):
83
184
 
185
+ Stop each completed session as soon as its commit lands.
186
+
84
187
  ```bash
85
188
  harnex stop --id cx-impl-NN
86
189
  ```
@@ -100,11 +203,16 @@ harnex stop --id cx-impl-NN
100
203
 
101
204
  | Step | ID pattern | tmux window | Example |
102
205
  |------|-----------|-------------|---------|
206
+ | Mapping | `cx-map-NN` | `cx-map-NN` | `cx-map-42` |
207
+ | Map review | `cx-rev-map-NN` | `cx-rev-map-NN` | `cx-rev-map-42` |
208
+ | Map fix | `cx-fix-map-NN` | `cx-fix-map-NN` | `cx-fix-map-42` |
103
209
  | Implement | `cx-impl-NN` | `cx-impl-NN` | `cx-impl-42` |
104
210
  | Review | `cl-rev-NN` | `cl-rev-NN` | `cl-rev-42` |
105
211
  | Fix | `cx-fix-NN` | `cx-fix-NN` | `cx-fix-42` |
106
212
  | Plan write | `cx-plan-NN` | `cx-plan-NN` | `cx-plan-42` |
213
+ | Plan review | `cx-rev-plan-NN` | `cx-rev-plan-NN` | `cx-rev-plan-42` |
107
214
  | Plan fix | `cx-fix-plan-NN` | `cx-fix-plan-NN` | `cx-fix-plan-42` |
215
+ | Buddy | `buddy-NN` | `buddy-NN` | `buddy-42` |
108
216
 
109
217
  **Rule**: Always use `--tmux <same-as-id>` so the tmux window name matches
110
218
  the session ID. Never use a different tmux name.
@@ -139,7 +247,7 @@ git commit -m "docs(plan-NN): add plan"
139
247
 
140
248
  # Create worktree
141
249
  WORKTREE="$(pwd)/../$(basename $(pwd))-plan-NN"
142
- git worktree add ${WORKTREE} -b plan/NN_name master
250
+ git worktree add ${WORKTREE} -b plan/NN_name main
143
251
 
144
252
  # Launch from worktree
145
253
  cd ${WORKTREE}
@@ -164,19 +272,17 @@ harnex status --all # all repos
164
272
  ## Buddy for Long-Running Dispatches
165
273
 
166
274
  If the dispatched work is expected to take a long time (overnight, multi-hour)
167
- or the user asks for unattended execution, spawn a buddy alongside the worker:
275
+ or the user asks for unattended execution, spawn a buddy alongside the worker.
276
+ Dispatch mechanics stay here; buddy monitoring mechanics live in
277
+ `harnex-buddy`.
168
278
 
169
279
  ```bash
170
- # Worker
171
- harnex run codex --id cx-impl-NN --tmux cx-impl-NN \
172
- --context "Implement koder/plans/NN_name.md. Run tests when done."
173
-
174
- # Buddy to watch it
175
280
  harnex run claude --id buddy-NN --tmux buddy-NN
176
- harnex send --id buddy-NN --message "Watch session cx-impl-NN. Poll every 5 min with harnex pane --id cx-impl-NN --lines 20. Nudge with harnex send if stuck for >10 min. Report back to \$HARNEX_SPAWNER_PANE when done."
281
+ harnex send --id buddy-NN --message "Watch session cx-impl-NN. Follow skills/harnex-buddy/SKILL.md and report completion to \$HARNEX_SPAWNER_PANE."
177
282
  ```
178
283
 
179
- The buddy replaces manual Fire & Watch polling. See `recipes/03_buddy.md`.
284
+ For activation conditions, poll/stall/nudge loop, return channel details, and
285
+ buddy cleanup, use `harnex-buddy`.
180
286
 
181
287
  ## What NOT to Do
182
288
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: harnex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jikku Jose
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-23 00:00:00.000000000 Z
11
+ date: 2026-04-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A local PTY harness that wraps terminal AI agents (Claude, Codex) and
14
14
  adds a control plane for discovery, messaging, and coordination.
@@ -32,6 +32,7 @@ files:
32
32
  - lib/harnex/adapters/codex.rb
33
33
  - lib/harnex/adapters/generic.rb
34
34
  - lib/harnex/cli.rb
35
+ - lib/harnex/commands/events.rb
35
36
  - lib/harnex/commands/guide.rb
36
37
  - lib/harnex/commands/logs.rb
37
38
  - lib/harnex/commands/pane.rb
@@ -42,6 +43,8 @@ files:
42
43
  - lib/harnex/commands/status.rb
43
44
  - lib/harnex/commands/stop.rb
44
45
  - lib/harnex/commands/wait.rb
46
+ - lib/harnex/commands/watch.rb
47
+ - lib/harnex/commands/watch_presets.rb
45
48
  - lib/harnex/core.rb
46
49
  - lib/harnex/runtime/api_server.rb
47
50
  - lib/harnex/runtime/file_change_hook.rb