refactor: implement in-process worker architecture for hooks (#722)

* fix: stop generating empty CLAUDE.md files

- Return empty string instead of "No recent activity" when no observations exist
- Skip writing CLAUDE.md files when formatted content is empty
- Remove redundant "auto-generated by claude-mem" HTML comment
- Clean up 98 existing empty CLAUDE.md files across the codebase
- Update tests to expect empty string for empty input

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* build assets

* refactor: implement in-process worker architecture for hooks

Replaces spawn-based worker startup with in-process architecture:
- Hook processes now become the worker when port 37777 is free
- Eliminates Windows spawn issues (NO SPAWN rule)
- SessionStart chains: smart-install && stop && context

Key changes:
- worker-service.ts: hook case starts WorkerService in-process
- hook-command.ts: skipExit option prevents process.exit() when hosting worker
- hooks.json: single chained command replaces separate start/hook commands
- worker-utils.ts: ensureWorkerRunning() returns boolean, doesn't block
- handlers: graceful fallback when worker unavailable

All 761 tests pass. Manual verification confirms hook stays alive as worker.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* context

* a

* MAESTRO: Mark PR #722 test verification task complete

All 797 tests passed (3 skipped, 0 failed) after merge conflict resolution.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* MAESTRO: Mark PR #722 build verification task complete

* MAESTRO: Mark PR #722 code review task complete

Code review verified:
- worker-service.ts hook case starts WorkerService in-process
- hook-command.ts has skipExit option
- hooks.json uses single chained command
- worker-utils.ts ensureWorkerRunning() returns boolean

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* MAESTRO: Mark PR #722 conflict resolution push task complete

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Alex Newman
2026-02-04 19:49:15 -05:00
committed by GitHub
parent 14ca7cf7d6
commit 4df9f61347
107 changed files with 804 additions and 4493 deletions
-71
View File
@@ -1,71 +0,0 @@
<claude-mem-context>
# Recent Activity
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
### Nov 25, 2025
**api.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #15545 | 8:37 PM | 🔵 | API Constants File Contains Single Comment Reference | ~227 |
### Dec 7, 2025
**observation-metadata.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #21685 | 9:48 PM | 🔵 | Configuration Defaults and Environment Variables | ~558 |
### Dec 9, 2025
**observation-metadata.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #22672 | 12:10 PM | 🔵 | Observation Type System with Six Types and Seven Concepts | ~505 |
### Dec 11, 2025
**observation-metadata.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #23959 | 1:58 PM | 🔵 | TypeScript Codebase Architecture Mapped | ~337 |
### Dec 18, 2025
**observation-metadata.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #29773 | 7:01 PM | 🔵 | Observation Type Definitions Across Codebase | ~362 |
| #29248 | 12:15 AM | ⚖️ | RAGTIME domain-agnostic architecture design for claude-mem | ~590 |
| #29229 | 12:08 AM | 🔵 | Claude-Mem Observation Type System Architecture Mapped | ~552 |
| #29220 | 12:04 AM | 🔵 | Observation Type and Concept Taxonomy | ~355 |
### Dec 21, 2025
**observation-metadata.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #31747 | 10:43 PM | 🔵 | PR #412 Code Review Identifies Two Critical Bugs in Mode System | ~545 |
| #31433 | 6:58 PM | 🔄 | Simplified observation-metadata.ts to use hardcoded defaults | ~330 |
| #31429 | 6:57 PM | 🔄 | Removed unused emoji mapping constants from observation metadata | ~245 |
| #31423 | 6:50 PM | 🔵 | Observation Metadata Constants File Structure | ~327 |
| #31329 | 5:45 PM | 🔵 | Observation Metadata Integration Across Services and UI | ~403 |
| #31328 | " | 🔵 | Settings Defaults Manager Uses Observation Metadata Constants | ~286 |
| #31327 | " | 🔵 | Observation Metadata Constants - Core Type and Concept Definitions | ~369 |
### Dec 25, 2025
**observation-metadata.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #32701 | 9:00 PM | 🔵 | Test Coverage Report Generated | ~471 |
### Jan 2, 2026
**observation-metadata.ts**
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #35875 | 2:39 PM | 🔵 | Logging UI Architecture Mapped | ~599 |
| #35836 | 2:30 PM | 🔵 | Observation metadata constants for types and concepts | ~280 |
</claude-mem-context>