Commit Graph

73 Commits

Author SHA1 Message Date
Alex Newman e36efff00d MAESTRO: Close PR #910 in PR-Triage-08 — stale branch with regressions
PR #910 reverts 5 recently merged fixes (PRs #693, #937, #913, Issue #733,
createIterator API) and bundles unrelated features (observation dedup,
summary soft-delete, CLAUDE.md deletions). Requested re-submission as
focused PRs for the valuable synthetic memorySessionId feature.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 02:02:00 -05:00
Alex Newman 486bae633b MAESTRO: Mark PR #741 task complete in PR-Triage-08
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:58:59 -05:00
Alex Newman ff55b6e4e0 MAESTRO: Mark PR #627 task complete in PR-Triage-08
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:54:28 -05:00
Alex Newman 9fd32ad44b MAESTRO: Close PR #899 - too broad, overlaps with merged PRs #693, #937, #940
Reviewed PR #899 (multi-session message processing fix). Identified significant
overlap with 3 recently merged PRs causing merge conflicts in 3 files. Closed
with detailed feedback requesting focused re-submission of the genuinely valuable
parts: AbortController stale-check, FK constraint protection, and queueDepth fix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:51:52 -05:00
Alex Newman dd753184db MAESTRO: Mark PR #937 task complete in PR-Triage-08
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:48:50 -05:00
Alex Newman 1a1297c12a MAESTRO: Merge PR #940 - backfill project field on SDK session creation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:45:35 -05:00
Alex Newman 1ae6c5708c MAESTRO: Merge PR #934 - terminate session on prompt-too-long instead of retrying indefinitely
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:40:20 -05:00
Alex Newman 9c68a3ba3d MAESTRO: Merge PR #913 - respect CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED setting
Folder CLAUDE.md generation is now gated behind the CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED
setting (default: false). The setting is exposed via the settings API and handles both
string and boolean JSON values.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:38:01 -05:00
Alex Newman ab3d4ca865 MAESTRO: Prevent CLAUDE.md generation in unsafe directories (PR #929 concept)
Add exclusion list for directories where CLAUDE.md generation breaks
toolchains: res/ (Android aapt2), .git/, build/, node_modules/,
__pycache__/. Closes issue #912. Credit to @jayvenn21.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:35:31 -05:00
Alex Newman e424d85a93 MAESTRO: Close PR #834 - isInsideGitRepo would disable folder CLAUDE.md feature for all git projects
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:32:50 -05:00
Alex Newman e5a133b3da MAESTRO: Prevent nested duplicate directory creation in CLAUDE.md paths (PR #836 concept)
Add hasConsecutiveDuplicateSegments() check to isValidPathForClaudeMd() to reject paths
like frontend/frontend/ or src/src/ that occur when cwd already includes the directory name.
3 new tests added (46 total for claude-md-utils). Fixes #814. Credit to @Glucksberg.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 00:03:03 -05:00
Alex Newman 15e9473533 MAESTRO: Fix CLAUDE.md race condition from PR #974 - skip folders with active CLAUDE.md edits
Prevents "file modified since read" errors when Claude Code is actively editing
a CLAUDE.md file by detecting CLAUDE.md paths in observation file lists and
skipping those folders during updates. Closes #859. Credit: @cheapsteak.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 23:57:32 -05:00
Alex Newman 20333e6214 MAESTRO: Merge PR #932 - prevent duplicate generator spawns in handleSessionInit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 23:49:23 -05:00
Alex Newman 576d407c00 MAESTRO: Fix image-only prompts skipping session init (PR #928 concept)
Image-only prompts have empty text content, causing session-init handler
to skip session creation entirely. Use '[media prompt]' placeholder so
sessions still get created and tracked in memory.

Closes PR #928 (applied directly due to merge conflicts with outdated base).
Credit: @iammike for identifying the issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 23:47:12 -05:00
Alex Newman 3eb0154d58 MAESTRO: Close PR #829 as redundant - empty prompt fix already merged via PR #828
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 22:39:20 -05:00
Alex Newman 80663fff97 MAESTRO: Merge PR #828 - server-side DB readiness wait for session-init endpoint
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 22:37:47 -05:00
Alex Newman d333c7dc08 MAESTRO: Expand startup orphan cleanup to target mcp-server and worker-service processes
The startup cleanupOrphanedProcesses() only targeted chroma-mcp, leaving
orphaned mcp-server.cjs and worker-service.cjs processes undetected after
daemon crashes. Expanded to target all claude-mem process types with
30-minute age filtering and current PID exclusion. Closes PR #687 (which
had a spawnDaemon regression removing Windows WMIC support).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 22:06:46 -05:00
Alex Newman edfc1a403f MAESTRO: Close PR #713 - subprocess accumulation fix already covered by ProcessRegistry and idle timeout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 20:19:43 -05:00
Alex Newman ad37629f0a MAESTRO: Close PR #738 - parallel subprocess tracking system duplicates ProcessRegistry
PR #738's QueryWrapper/QueryWrapperManager introduces a separate process tracking
system alongside the existing ProcessRegistry. Its orphan cleanup duplicates
killSystemOrphans() and killIdleDaemonChildren() already in main.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 20:13:26 -05:00
Alex Newman 7be19b20cd MAESTRO: Close PR #847 - observer session isolation already shipped via PRs #845, #733
All changes from the comprehensive PR were merged incrementally:
- PR #845 (v9.0.12): cwd isolation replacing CLAUDE_CONFIG_DIR
- PR #733: EnvManager.ts with buildIsolatedEnv() for credential isolation
- CLAUDE_MEM_CLAUDE_AUTH_METHOD setting already in SettingsDefaultsManager

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 20:09:52 -05:00
Alex Newman 5b2eb9f599 MAESTRO: Merge PR #879 - daemon children cleanup fills orphan reaper gap
PR #879 adds killIdleDaemonChildren() to ProcessRegistry, targeting idle
Claude SDK processes that are children of the worker-service daemon but
weren't caught by the existing registry-based or ppid=1 cleanup paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 20:04:59 -05:00
Alex Newman a35190b7bf MAESTRO: Close PR #867 - process bomb and zombie observer fixes already in main
Both features proposed by PR #867 are already addressed:
1. Zombie observer idle timeout: fully implemented in SessionQueueProcessor.ts
2. Startup batching: 100ms stagger + idle timeout makes it unnecessary

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:30:25 -05:00
Alex Newman 4b180d8d66 MAESTRO: Close PR #930 - deferred worker init superseded by fail-open architecture
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:25:38 -05:00
Alex Newman 61615ddc0f MAESTRO: Document PR #931 closure and spawn guard implementation in triage doc
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:00:23 -05:00
Alex Newman 3840a1734d MAESTRO: Close PR #935 - SDK patching approach rejected in favor of fail-open architecture
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:31:40 -05:00
Alex Newman ca990e8d53 MAESTRO: Merge PR #972 - fix Windows path handling for usernames with spaces
Removed shell: IS_WINDOWS from bun-runner.js spawn() call to prevent
cmd.exe from splitting paths at spaces. Added windowsHide: true to
prevent visible console windows on Windows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:29:57 -05:00
Alex Newman 2ea716a017 MAESTRO: Close PR #530 - retry logic superseded by fail-open hook strategy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:27:55 -05:00
Alex Newman 4e4ad32f97 MAESTRO: Close PR #922 - async SessionStart hooks would break context injection
SessionStart hooks must run synchronously because the context hook's stdout
is captured and injected as Claude's system-level memory context. The Windows
blocking issue was already resolved by the fail-open approach in PRs #973,
#959, and #964.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:27:06 -05:00
Alex Newman faa1360f33 MAESTRO: Merge PR #964 - add fetch timeouts to Stop hook and health checks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:25:49 -05:00
Alex Newman be01694383 MAESTRO: Merge PR #959 - fail open on /api/context/inject during initialization
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:23:24 -05:00
Alex Newman bf4d9421e0 MAESTRO: Merge PR #973 - hooks fail gracefully instead of blocking prompts
session-init.ts: replaced throws on worker 500/SDK agent failure with
logger.failure() + graceful exit 0. user-message.ts: replaced throw with
graceful return, console.error → process.stderr.write, USER_MESSAGE_ONLY → SUCCESS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:19:41 -05:00
Alex Newman 311d62cc02 MAESTRO: Merge PR #960 removing user-message hook from SessionStart to fix startup error
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:16:15 -05:00
Alex Newman d0b4c7ee59 MAESTRO: Add DOMPurify XSS defense-in-depth to TerminalPreview (closes PR #896)
PR #896 identified a valid XSS concern in TerminalPreview.tsx but was
broken (missing DOMPurify import and dependency). The existing
escapeXML:true on AnsiToHtml already mitigates the vector, but
DOMPurify adds defense-in-depth sanitization.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:14:46 -05:00
Alex Newman e6af8d207a MAESTRO: Close duplicate CORS PR #926 in favor of merged PR #917
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:11:51 -05:00
Alex Newman 75b9930ee4 MAESTRO: Mark PR #917 CORS restriction as merged in triage document
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:11:12 -05:00
Alex Newman 2aab998b62 MAESTRO: Close duplicate PR #875 (CLAUDE_MEM_DISABLE_SUBDIRECTORY_CLAUDE_MD, keeping #913)
PR #875 used negative logic naming (DISABLE instead of ENABLED), superseded
by PR #913 which uses the established CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED setting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:09:17 -05:00
Alex Newman 6b22017721 MAESTRO: Close duplicate PR #589 (CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED, keeping #913)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:08:40 -05:00
Alex Newman 34aef1aa18 MAESTRO: Close duplicate PR #823 (CLAUDE_MEM_FOLDER_CLAUDEMD_ENABLED, keeping #913)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:08:03 -05:00
Alex Newman d00762d1f7 MAESTRO: Close duplicate PR #908 (Windows npm docs note, keeping #919)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:07:27 -05:00
Alex Newman 400f08c20d MAESTRO: Close duplicate PR #905 (user-message hook removal, keeping #960)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:06:54 -05:00
Alex Newman 18c7f1cd76 MAESTRO: Close bot-generated PR #754 (copilot-swe-agent MCP documentation PR)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:06:21 -05:00
Alex Newman 74506dd4e6 MAESTRO: Close suspicious PR #904 (replaces repo URL with external download link)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:05:48 -05:00
Alex Newman 0f72356cb1 MAESTRO: Close junk PR #770 (bot-generated install/build with no source changes)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:05:06 -05:00
Alex Newman 121fb24705 MAESTRO: Close junk PR #546 (accidental main branch push with no clear purpose)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:04:36 -05:00
Alex Newman 867c658f4f MAESTRO: Close stale PR #521 (fresh install timeout fix already shipped in v9.0.16 and v9.0.17)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:04:02 -05:00
Alex Newman 0704355a7f MAESTRO: Close stale PR #700 (Windows Terminal popup fix already shipped in v9.0.6)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:03:29 -05:00
Alex Newman 6930a38997 MAESTRO: Close stale PR #933 (WMIC replacement already fixed in v9.0.2)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:02:58 -05:00
Alex Newman e218dc5947 MAESTRO: Close stale PR #840 (WMIC replacement already fixed in v9.0.2)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:02:26 -05:00
Alex Newman 7e1c13c6c2 MAESTRO: Close stale PR #735 (isolated credentials already fixed in v9.0.15)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:01:54 -05:00
Alex Newman e87701228d MAESTRO: Close stale PR #848 (zombie observer prevention already fixed in v9.0.13)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 18:01:20 -05:00