eagle-mem 4.8.2 → 4.8.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.
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  Eagle Mem turns AI coding sessions into compounding project knowledge. It gives Claude Code and Codex the same local memory, labels which agent created each memory, blocks risky release commands until affected features are verified, and lets broad work split into durable worker lanes.
13
13
 
14
- **v4.8.2 ships Codex output polish:** Codex final replies now stay clean by default instead of printing large `<eagle-summary>` capture blocks. Eagle Mem still captures summaries from the Stop transcript, while Claude Code can keep using the richer explicit summary path where it behaves cleanly.
14
+ **v4.8.4 proves the worker-lane path end to end:** Codex can create an orchestration, route a lane to Claude Code by default, launch the Claude worker in an isolated worktree, mirror the lane into `agent_tasks`, and generate a durable handoff without crashing on Bash 3.2.
15
15
 
16
16
  **Website:** [Product](https://eagleisbatman.github.io/eagle-mem/) |
17
17
  [Architecture](https://eagleisbatman.github.io/eagle-mem/architecture.html) |
@@ -149,6 +149,14 @@ Eagle Mem prevents Claude from repeating past mistakes:
149
149
  | `eagle-mem scan` | Scan codebase and generate overview |
150
150
  | `eagle-mem index` | Index source files for FTS5 code search |
151
151
 
152
+ ### v4.8.4 Patch
153
+
154
+ The orchestration handoff path is now Bash 3.2-safe, so `eagle-mem orchestrate handoff` works even when no lane options are present. This patch was verified with a real Codex coordinator -> Claude Code worker proof lane using `claude-opus-4-7` at `xhigh`; the completed lane is visible through `eagle-mem orchestrate --json`, `eagle-mem tasks completed`, and the generated handoff output. Release-boundary detection also ignores Eagle Mem's own `feature verify`/`waive` commands, so verification notes can mention dry-run checks without blocking themselves.
155
+
156
+ ### v4.8.3 Patch
157
+
158
+ GitHub Pages now keeps hero text readable over the terminal background and the homepage explicitly explains installer-created/updated `CLAUDE.md` and `AGENTS.md` sections plus orchestrator/worker mode. Installer/update output also uses the new clean-output Codex wording instead of saying it added eagle-summary instructions.
159
+
152
160
  ### v4.8.2 Patch
153
161
 
154
162
  Codex no longer gets instructed to print large user-visible `<eagle-summary>` XML blocks. The installer/update path rewrites existing `~/.codex/AGENTS.md` Eagle Mem instructions to the clean-output contract, context-pressure nudges use normal prose, and Codex-oriented skills/worker prompts avoid raw capture templates.
package/lib/common.sh CHANGED
@@ -378,6 +378,10 @@ eagle_is_release_boundary_command() {
378
378
  function has_dry_run_flag(line) {
379
379
  return line ~ /(^|[[:space:]])--dry-run([[:space:]]|$|=([Tt][Rr][Uu][Ee]|1|[Yy][Ee][Ss])([[:space:]]|$))/
380
380
  }
381
+ function is_eagle_feature_command(line) {
382
+ return line ~ /(^|[[:space:]])([^[:space:]]*\/)?eagle-mem[[:space:]]+feature[[:space:]]+(verify|waive|pending|list)([[:space:]]|$)/
383
+ }
384
+ is_eagle_feature_command($0) { next }
381
385
  /(^|[[:space:]])gh[[:space:]]+pr[[:space:]]+create([[:space:]]|$)/ ||
382
386
  /(^|[[:space:]])npm[[:space:]]+publish([[:space:]]|$)/ ||
383
387
  /(^|[[:space:]])pnpm[[:space:]]+publish([[:space:]]|$)/ ||
@@ -399,6 +403,10 @@ eagle_is_release_boundary_command() {
399
403
  function has_dry_run_flag(line) {
400
404
  return line ~ /(^|[[:space:]])--dry-run([[:space:]]|$|=([Tt][Rr][Uu][Ee]|1|[Yy][Ee][Ss])([[:space:]]|$))/
401
405
  }
406
+ function is_eagle_feature_command(line) {
407
+ return line ~ /(^|[[:space:]])([^[:space:]]*\/)?eagle-mem[[:space:]]+feature[[:space:]]+(verify|waive|pending|list)([[:space:]]|$)/
408
+ }
409
+ is_eagle_feature_command($0) { next }
402
410
  /(^|[[:space:]])git[[:space:]]+push([[:space:]]|$)/ {
403
411
  if (!has_dry_run_flag($0)) found = 1
404
412
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eagle-mem",
3
- "version": "4.8.2",
3
+ "version": "4.8.4",
4
4
  "description": "Shared memory, release guardrails, RTK token protection, and worker lanes for Claude Code and Codex",
5
5
  "bin": {
6
6
  "eagle-mem": "bin/eagle-mem"
@@ -328,7 +328,7 @@ fi
328
328
 
329
329
  if [ "$codex_found" = true ]; then
330
330
  if eagle_patch_codex_agents_md; then
331
- eagle_ok "AGENTS.md ${DIM}(Codex eagle-summary instructions added)${RESET}"
331
+ eagle_ok "AGENTS.md ${DIM}(Codex clean-output memory instructions added)${RESET}"
332
332
  else
333
333
  eagle_ok "AGENTS.md ${DIM}(already has Eagle Mem section)${RESET}"
334
334
  fi
@@ -452,7 +452,11 @@ parse_lane_options() {
452
452
  esac
453
453
  i=$((i + 1))
454
454
  done
455
- args=("${parsed[@]}")
455
+ if [ "${#parsed[@]}" -gt 0 ]; then
456
+ args=("${parsed[@]}")
457
+ else
458
+ args=()
459
+ fi
456
460
  }
457
461
 
458
462
  lane_add() {
@@ -758,7 +762,11 @@ parse_spawn_options() {
758
762
  esac
759
763
  i=$((i + 1))
760
764
  done
761
- args=("${parsed[@]}")
765
+ if [ "${#parsed[@]}" -gt 0 ]; then
766
+ args=("${parsed[@]}")
767
+ else
768
+ args=()
769
+ fi
762
770
  }
763
771
 
764
772
  orchestrate_worker_run_script() {
package/scripts/update.sh CHANGED
@@ -162,7 +162,7 @@ fi
162
162
 
163
163
  if [ "$codex_found" = true ]; then
164
164
  if eagle_patch_codex_agents_md; then
165
- eagle_ok "AGENTS.md updated ${DIM}(Codex eagle-summary instructions added)${RESET}"
165
+ eagle_ok "AGENTS.md updated ${DIM}(Codex clean-output memory instructions updated)${RESET}"
166
166
  else
167
167
  eagle_ok "AGENTS.md up to date"
168
168
  fi