niahere 0.2.88 → 0.2.89

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": "niahere",
3
- "version": "0.2.88",
3
+ "version": "0.2.89",
4
4
  "description": "A personal AI assistant daemon — chat, scheduled jobs, persona system, extensible via skills.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -4,7 +4,7 @@ description: >
4
4
  Persistent task management via Beads CLI (bd). Use when user mentions tasks, todos, issues, or tracking work.
5
5
  Check `which bd` first — if missing, offer: `npm install -g @beads/bd`.
6
6
  All commands: run from `$BEATS_DIR` (for example `~/.niahere/beads`) and use `bd <command>`. Always label: `--label project:<project-name>`.
7
- Run `bd help-all` for available commands. Not for ephemeral in-conversation tracking.
7
+ Run `bd --help` or `bd help --all` for available commands. Not for ephemeral in-conversation tracking.
8
8
  ---
9
9
 
10
10
  ## Overview
@@ -19,7 +19,7 @@ Global task manager powered by [Beads](https://github.com/steveyegge/beads). Sto
19
19
  3. Set `BEATS_DIR` to your Beads workspace (for example `~/.niahere/beads`).
20
20
  4. All commands: `cd "$BEATS_DIR" && bd <command>`.
21
21
  5. Always label with `--label project:<name>`.
22
- 6. Run `cd "$BEATS_DIR" && bd help-all` for available commands.
22
+ 6. Run `cd "$BEATS_DIR" && bd --help` or `bd help --all` for available commands.
23
23
 
24
24
  ## Core Commands
25
25
 
@@ -53,6 +53,8 @@ bd update <id> --status in_progress # Start work
53
53
  bd update <id> --description "..." # Add/replace description
54
54
  bd update <id> --add-label personal # Add label
55
55
  bd update <id> --set-labels bug,urgent # Replace all labels
56
+ bd update <id> --claim # Atomically claim work
57
+ bd update <id> --set-metadata team=platform # Set task-scoped metadata
56
58
  ```
57
59
 
58
60
  Chain multiple updates: `bd update <id> --priority P1 --type bug --parent <parent-id>`
@@ -63,7 +65,11 @@ Chain multiple updates: `bd update <id> --priority P1 --type bug --parent <paren
63
65
  bd list # Open tasks (tree view)
64
66
  bd list --all # Include closed/deferred tasks
65
67
  bd list --label project:<name> # Filter by project
68
+ bd ready # Ready work with blocker-aware semantics
69
+ bd ready --claim # Atomically claim the first matching ready issue
66
70
  bd show <id> # Full details of a task
71
+ bd show <id> --long # Full details, including extended metadata
72
+ bd show --current --long # Current/last touched issue with metadata
67
73
  bd children <id> # List children of a parent
68
74
  ```
69
75
 
@@ -88,6 +94,57 @@ bd reopen <id> # Reopen if closed prematurely
88
94
  - Ephemeral/conversation-only tracking → use conversation context, not beads
89
95
  - `bd set-state ... state=...` is for operational metadata only; it does not change the task status shown in list.
90
96
 
97
+ ## Agent Session Tracking
98
+
99
+ When a Beads task is worked in Claude Code, Codex, or another agent CLI, store the active session on the task as metadata. Do not invent session IDs yourself; let the tool create the session, then attach the discovered session ID to the bead.
100
+
101
+ Use one shared metadata schema for all tools:
102
+
103
+ ```bash
104
+ session_tool=codex|claude
105
+ session_id=<tool-created-session-id>
106
+ session_cwd=<absolute repo/worktree path>
107
+ session_resume_cmd=<exact resume command>
108
+ session_attached_at=<ISO timestamp>
109
+ ```
110
+
111
+ Attach a session after starting or identifying it:
112
+
113
+ ```bash
114
+ cd "$BEATS_DIR"
115
+ bd update <id> --claim
116
+ bd update <id> \
117
+ --set-metadata session_tool=codex \
118
+ --set-metadata session_id="$sid" \
119
+ --set-metadata session_cwd="$PWD" \
120
+ --set-metadata session_resume_cmd="cd $PWD && codex resume $sid" \
121
+ --set-metadata session_attached_at="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
122
+ bd note <id> "Attached codex session $sid"
123
+ ```
124
+
125
+ For Claude, use the same keys and a Claude resume command:
126
+
127
+ ```bash
128
+ bd update <id> \
129
+ --set-metadata session_tool=claude \
130
+ --set-metadata session_id="$sid" \
131
+ --set-metadata session_cwd="$PWD" \
132
+ --set-metadata session_resume_cmd="cd $PWD && claude --resume $sid" \
133
+ --set-metadata session_attached_at="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
134
+ ```
135
+
136
+ Find session-backed tasks:
137
+
138
+ ```bash
139
+ bd list --has-metadata-key session_id --all --long
140
+ bd list --metadata-field session_tool=codex --all --long
141
+ bd list --metadata-field session_tool=claude --all --long
142
+ bd show <id> --long
143
+ bd show --current --long
144
+ ```
145
+
146
+ Use task metadata as the source of truth. `bd kv` is global and not task-scoped, so do not use it for task sessions. `bd audit` is append-only history, not a jump table. Notes/comments are useful human breadcrumbs, but the resume command and session ID should live in metadata.
147
+
91
148
  ## Hierarchy & Organization
92
149
 
93
150
  ### When to use parent-child vs labels