Skip to content

Commit 9d0a701

Browse files
phernandezclaude
andcommitted
fix(plugins): address Codex review P2s on PR #865
1. SessionStart worker pool was sized 8 but submits up to 9 searches (3 primary + MAX_SHARED=6 shared) — the 9th queued behind a possibly-10s call and could push the hook past Claude Code's 20s SessionStart timeout before the brief printed. Size the pool to 3 + MAX_SHARED so nothing queues. (Introduced in Phase 4 when the third primary query was added.) 2. captureChattyness was dead config — written by setup but read by no hook, and its "heavy" level advertised "checkpoint without compaction," which no hook implements. The real proactivity knob is `outputStyle`. Removed captureChattyness entirely and folded the "how active should I be?" question into the output-style step (the single, actually-wired toggle); the always-on hooks run regardless. Updated setup skill, settings.example.json, and DESIGN. Both flagged by Codex (review 4395911984); same class as the recallTimeframe dead-config fix from the earlier self-review. Plugin validates; hook smoke-tested. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: phernandez <paul@basicmachines.co>
1 parent c7efe0f commit 9d0a701

4 files changed

Lines changed: 14 additions & 17 deletions

File tree

plugins/claude-code/DESIGN.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,6 @@ Users get overwhelmed starting from zero. The plugin opens with a guided intervi
392392
"rememberFolder": "bm-remember",
393393
"recallTimeframe": "3d",
394394
"recallPrompt": "You have Basic Memory available. Search before answering recall questions. Capture material decisions inline. Cite permalinks when referencing prior work.",
395-
"captureChattyness": "light",
396395
"preCompactCapture": "summarized",
397396
"placementConventions": null,
398397
"teamProjects": {}

plugins/claude-code/hooks/session-start.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,10 @@ RECENT_SESSIONS = ["--type", "session", "--after_date", recall_timeframe]
141141
# --- Run everything concurrently ---
142142
# Cloud reads cost a network round-trip each; parallelism keeps total wall-clock at
143143
# ~one query instead of the sum. Each call is independently best-effort.
144-
with ThreadPoolExecutor(max_workers=8) as pool:
144+
# Size the pool to cover every submitted search (3 primary + up to MAX_SHARED),
145+
# so none queues — a queued call could otherwise serialize behind a slow one and
146+
# push the hook past Claude Code's SessionStart timeout before the brief prints.
147+
with ThreadPoolExecutor(max_workers=3 + MAX_SHARED) as pool:
145148
fut_tasks = pool.submit(search, ACTIVE_TASKS, primary_project or None)
146149
fut_decisions = pool.submit(search, OPEN_DECISIONS, primary_project or None)
147150
fut_sessions = pool.submit(search, RECENT_SESSIONS, primary_project or None)

plugins/claude-code/settings.example.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
"rememberFolder": "bm-remember",
88
"recallTimeframe": "3d",
99
"recallPrompt": "You have Basic Memory available for this project. Before answering recall questions (\"what did we decide\", \"where did we leave off\"), search the graph first — prefer structured filters (search_notes with type/status). When the user makes a material decision, capture it as a note with type: decision. Cite permalinks when referencing prior work.",
10-
"captureChattyness": "light",
1110
"preCompactCapture": "extractive",
1211
"placementConventions": null,
1312
"teamProjects": {

plugins/claude-code/skills/setup/SKILL.md

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,7 @@ Ask only what you can't infer. Cover:
5252
Keep `primaryProject` a project the user owns for their *own* capture; team
5353
projects are for reading and deliberate sharing only.
5454

55-
4. **Chattiness.** "How active should I be?"
56-
- **light** (default) — session brief on start, checkpoint before compaction,
57-
`/basic-memory:remember` on demand.
58-
- **standard** — also capture material decisions inline (enable the output style).
59-
- **heavy** — also write a session checkpoint even without compaction.
60-
Map the answer to `captureChattyness`.
61-
62-
5. **Learn conventions** (optional). "Want me to look at your existing notes and
55+
4. **Learn conventions** (optional). "Want me to look at your existing notes and
6356
note your conventions so I place new notes consistently?" If yes, inspect the
6457
project: `list_directory` for the folder layout, sample a few notes per folder
6558
(and, where a folder holds recurring typed notes, you may run `schema_infer` to
@@ -68,14 +61,18 @@ Ask only what you can't infer. Cover:
6861
that string as `placementConventions`. Infer from their *real* notes; don't
6962
impose a structure.
7063

71-
6. **Schemas.** "I'll add schemas for session checkpoints, decisions, and tasks so
64+
5. **Schemas.** "I'll add schemas for session checkpoints, decisions, and tasks so
7265
I can find them precisely later — okay?" (See "Seed the schemas" below.)
7366

74-
7. **Output style.** "Enable the capture reflexes now? (search before recalling,
75-
capture decisions as typed notes, cite permalinks)" → sets
76-
`outputStyle: "basic-memory"`. Default yes for standard/heavy, ask for light.
67+
6. **How active should I be? (output style)** "Want me to proactively capture —
68+
search the graph before recalling, write material decisions as typed notes, and
69+
cite permalinks? Or keep it quiet (just the session brief, the PreCompact
70+
checkpoint, and `/basic-memory:remember` on demand)?" Enabling it sets
71+
`outputStyle: "basic-memory"`. Default to enabled; leave it off for a recall-only,
72+
low-noise setup. (This is the single knob for how proactive the assistant is —
73+
the hooks always run regardless.)
7774

78-
8. **Shared skills** (optional, default yes). "Want the full Basic Memory toolkit —
75+
7. **Shared skills** (optional, default yes). "Want the full Basic Memory toolkit —
7976
the shared `memory-*` skills (`memory-notes`, `memory-tasks`, `memory-research`,
8077
`memory-schema`, `memory-defrag`, …)? I can install them alongside this plugin."
8178
These are the canonical, framework-agnostic skills (the same set OpenClaw bundles).
@@ -123,7 +120,6 @@ Build the `basicMemory` block from the interview:
123120
"captureFolder": "sessions",
124121
"rememberFolder": "bm-remember",
125122
"recallTimeframe": "3d",
126-
"captureChattyness": "<light|standard|heavy>",
127123
"preCompactCapture": "extractive",
128124
"placementConventions": "<inferred summary, or null>",
129125
"teamProjects": {}

0 commit comments

Comments
 (0)