syntaur 0.66.1 → 0.68.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "syntaur",
3
- "version": "0.66.1",
3
+ "version": "0.68.0",
4
4
  "description": "Project workflow CLI with dashboard, Claude Code plugin, and Codex plugin",
5
5
  "homepage": "https://github.com/prong-horn/syntaur#readme",
6
6
  "repository": {
@@ -5,7 +5,7 @@
5
5
  "name": "Brennen",
6
6
  "email": ""
7
7
  },
8
- "version": "0.66.1",
8
+ "version": "0.68.0",
9
9
  "skills": [
10
10
  "./skills/syntaur-protocol",
11
11
  "./skills/grab-assignment",
@@ -39,7 +39,7 @@
39
39
  {
40
40
  "type": "command",
41
41
  "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/session-cleanup.sh",
42
- "timeout": 5
42
+ "timeout": 10
43
43
  }
44
44
  ]
45
45
  }
@@ -30,4 +30,25 @@ syntaur_bounded_stop() {
30
30
  }
31
31
  syntaur_bounded_stop || true
32
32
 
33
+ # Keep derived status fresh on session end so an assignment doesn't sit stale
34
+ # after the agent walks away. Best-effort, bounded (~3s, no `timeout` on macOS),
35
+ # and migration-gated (`--if-migrated`) so it can't re-derive pre-migration
36
+ # assignments during rollout. Resolves the assignment from the ending session's
37
+ # cwd `.syntaur/context.json`; no-ops silently when none is present.
38
+ HOOK_CWD=$(printf '%s' "$INPUT" | jq -r '.cwd // empty' 2>/dev/null)
39
+ syntaur_bounded_recompute() {
40
+ local cpid kpid rc
41
+ [ -n "$HOOK_CWD" ] && [ -f "$HOOK_CWD/.syntaur/context.json" ] || return 0
42
+ ( cd "$HOOK_CWD" 2>/dev/null && syntaur recompute --if-migrated >/dev/null 2>&1 ) &
43
+ cpid=$!
44
+ ( sleep 3; kill -KILL "$cpid" 2>/dev/null ) >/dev/null 2>&1 &
45
+ kpid=$!
46
+ wait "$cpid" 2>/dev/null
47
+ rc=$?
48
+ kill -KILL "$kpid" 2>/dev/null
49
+ wait "$kpid" 2>/dev/null
50
+ return "$rc"
51
+ }
52
+ syntaur_bounded_recompute || true
53
+
33
54
  exit 0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "syntaur",
3
- "version": "0.66.1",
3
+ "version": "0.68.0",
4
4
  "description": "Run Syntaur project and assignment workflows from Codex, including claiming work, planning, completing handoffs, session/server tracking, save-session-summary continuity, and write-boundary enforcement.",
5
5
  "author": {
6
6
  "name": "Brennen"
@@ -18,7 +18,7 @@
18
18
  {
19
19
  "type": "command",
20
20
  "command": "./scripts/session-cleanup.sh",
21
- "timeout": 5
21
+ "timeout": 10
22
22
  }
23
23
  ]
24
24
  }
@@ -31,6 +31,19 @@ if [ ! -f "$CONTEXT_FILE" ]; then
31
31
  exit 0
32
32
  fi
33
33
 
34
+ # Keep derived status fresh on session end — CLI-direct (NO dashboard
35
+ # dependency, unlike the session-stop PATCH below), migration-gated, and bounded
36
+ # (~3s; no `timeout` on stock macOS). Best-effort; never blocks teardown.
37
+ if command -v syntaur >/dev/null 2>&1; then
38
+ ( cd "$CWD" 2>/dev/null && syntaur recompute --if-migrated >/dev/null 2>&1 ) &
39
+ syntaur_rc_pid=$!
40
+ ( sleep 3; kill -KILL "$syntaur_rc_pid" 2>/dev/null ) >/dev/null 2>&1 &
41
+ syntaur_rc_killer=$!
42
+ wait "$syntaur_rc_pid" 2>/dev/null || true
43
+ kill -KILL "$syntaur_rc_killer" 2>/dev/null
44
+ wait "$syntaur_rc_killer" 2>/dev/null || true
45
+ fi
46
+
34
47
  RUNTIME_DIR="${SYNTAUR_RUNTIME_SESSIONS_DIR:-$HOME/.syntaur/runtime/sessions}"
35
48
 
36
49
  # Walk the ancestor-pid chain reading runtime markers. Returns the nearest