xingyue
7ce46e7735
Merge pull request 'RFC-006 Phase 3: Migrate workflow-manager process logic to WorkerRuntime' ( #295 ) from refactor/rfc-006-workflow-runtime into main
2026-04-30 14:14:05 +00:00
xiaomo
0455f928f5
fix: address review feedback (星月) for Phase 3
...
1. sendToWorker: IPC send failure now marks thread as failed + dequeues next
2. crashLimitBlocked Set: prevents new startWorkflow from bypassing crash limit
3. "respawning" log skipped when crash limit is active
4. logWorkflowEvent payload: unknown | null (project convention, not ?:)
2026-04-30 14:10:06 +00:00
xingyue
11cedfb5a5
Merge pull request 'refactor(cli): dynamic version for nerve agent — Phase 3 of RFC #289 ' ( #297 ) from feat/agent-inject-phase3 into main
2026-04-30 14:08:03 +00:00
tuanzi
ed1bc4e25f
refactor(cli): read CLI version from package.json instead of hardcoding
...
Phase 3 of #289 :
- Replace hardcoded CLI_VERSION constant with dynamic package.json read
- Cache version to avoid repeated fs reads
- Verified: npm pack includes skills/, version detection works correctly
Ref: #289 , #296
2026-04-30 14:04:14 +00:00
xiaomo
dc4454d23e
refactor: migrate workflow-manager process logic to WorkerRuntime (RFC-006 Phase 3)
...
- workflow-manager.ts: 792 → 498 lines, no more fork/ChildProcess/crash counting
- Extract pure functions to workflow-manager-support.ts (256 lines)
- WorkerRuntime gains: onCrashLimitReached callback, WorkerDrainOpts for per-call timeout
- worker-pool.ts updated for new evict/drain signature (null opts)
- All 167 daemon tests pass
Closes #282
2026-04-30 13:56:43 +00:00
xingyue
7c256620c5
Merge pull request 'feat(cli): nerve agent inject/update/remove/status — Phase 2 of RFC #289 ' ( #294 ) from feat/agent-inject-phase2 into main
2026-04-30 13:53:39 +00:00
tuanzi
14898e1827
feat(cli): add nerve agent inject/update/remove/status commands
...
Phase 2 of #289 :
- nerve agent inject hermes [--profile <name>]
- nerve agent update (updates all injected skills)
- nerve agent remove hermes [--profile <name>]
- nerve agent status (version check across profiles)
- Include skills/ in npm package files
Ref: #289 , #293
2026-04-30 13:46:55 +00:00
xingyue
082d2e72f2
Merge pull request 'refactor: align develop prompts and .knowledge with flat workspace' ( #288 ) from refactor/287-align-prompts-knowledge into main
2026-04-30 13:46:33 +00:00
xingyue
fbf63e0266
Merge pull request 'RFC-006 Phase 2: Migrate SenseWorkerPool to WorkerRuntime' ( #292 ) from refactor/rfc-006-worker-runtime into main
2026-04-30 13:44:56 +00:00
xingyue
7d89e8ab61
Merge pull request 'feat(cli): add hermes nerve skill — Phase 1 of RFC #289 ' ( #291 ) from feat/agent-inject-phase1 into main
2026-04-30 13:42:05 +00:00
xiaomo
e67ddc58d8
fix: address review feedback (星月)
...
1. trySendSync: wrap child.send in try/catch — IPC race between connected check and send
2. gracefulStop: same try/catch for shutdown send
3. Remove crashTimestamps reset on ready — crash window detection was being bypassed
2026-04-30 13:41:31 +00:00
xiaoju
06b1e3d785
refactor(cli,workflow-meta): scaffold AGENT.md on init; align develop prompts
...
Generate AGENT.md at ~/.uncaged-nerve root during nerve init (layout, verb-first workflows, createRole four-tuple, root build, coding style). Role prompts instruct agents to use cat AGENT.md instead of node_modules nerve-skills paths.
E2E init test asserts AGENT.md. Retain .knowledge workflow/adapter updates and flat single-file roles guidance from the branch.
Fixes #287
Made-with: Cursor
2026-04-30 13:41:24 +00:00
tuanzi
f828ebc28b
fix: align testing issue commands + add moderator sync pitfall
...
Address review from 星月:
- Update testing issue #290 to match actual CLI commands
- Add pitfall: moderator must be sync (not async)
- knowledge commands confirmed real (exist in codebase)
Ref: #290
2026-04-30 13:38:56 +00:00
tuanzi
809a11afe3
feat(cli): add hermes nerve skill (Phase 1 of #289 )
...
Add SKILL.md for Hermes Agent covering:
- Core concepts (Sense → Signal → Workflow → Log)
- Complete CLI reference
- Sense development guide with examples
- Workflow development guide with examples
- Daily operation patterns
- nerve.yaml config reference
Ref: #289 , #290
2026-04-30 13:36:03 +00:00
xiaomo
4dffcb636b
fix: resolve 2 failing tests after WorkerRuntime migration
...
- Add trySendSync() for synchronous send when worker is ready+connected
- sendCompute uses sync path first, async fallback for cold start
- Add forwardStderr, allowRespawn, hasDisconnectedChild, onReady(key,msg)
- Tests: add connected:true to mocks, flush async fork microtasks
- All 167 daemon tests pass
2026-04-30 13:34:10 +00:00
xiaomo
c34ec46416
feat(daemon): WorkerRuntime — generic message-routed process manager ( closes #280 )
...
RFC-006 Phase 1: ManagedWorker state machine + WorkerRuntime<K> with
cold start, crash respawn, drain/evict, graceful shutdown.
8 test cases covering all lifecycle scenarios.
2026-04-30 13:09:19 +00:00
xingyue
d2bb0275dc
Merge pull request 'feat(workflow-utils): add createLlmAdapter AgentFn factory' ( #278 ) from refactor/277-llm-adapter-four-tuple into main
2026-04-30 12:51:29 +00:00
xiaoju
005739f6bc
chore(workflow-utils): remove deprecated role factory exports
...
Remove createCursorRole, createHermesRole, createLlmRole, createReActRole
from public API — all superseded by createRole(adapter, prompt, schema, extract).
Source files retained as internal implementation.
Also remove unused type exports: CliPromptFn, CursorRole*, HermesRole*,
LlmPromptFn, LlmRole*, ReActRole*, ReActTool. Keep LlmMessage and
MetaExtractConfig (used internally).
Refs #277
2026-04-30 12:44:30 +00:00
xiaoju
fbe1cc8eba
feat(workflow-utils): add createLlmAdapter AgentFn factory
...
Single-turn chat via chatCompletionText: system from createRole prompt, user from ctx.start.content.
Fixes #277
Made-with: Cursor
2026-04-30 12:38:00 +00:00
xiaomo
ba286a2f27
Merge pull request 'refactor(cli): single-package workspace init and root dist build' ( #276 ) from refactor/274-single-package-workspace into main
2026-04-30 11:24:19 +00:00
xiaoju
c98e14e9e6
refactor(cli): single-package workspace init and root dist build ( #274 )
...
Init templates match ~/.uncaged-nerve: scripts/build.mjs writes dist/senses/*/index.js and dist/workflows/*/index.js; drop @uncaged/nerve-skills from generated package.json; refresh Cursor skills rule copy.
Sense worker sends full compute result on signal IPC so the kernel can route workflow triggers; update e2e harness paths (migrations under senses/, noop under dist/workflows).
Fixes #274
Made-with: Cursor
2026-04-30 10:17:44 +00:00
xiaomo
011345e114
Merge pull request 'refactor(core): consolidate file structure — 22 files → 6' ( #275 ) from refactor/core-file-consolidation into main
2026-04-30 09:21:01 +00:00
xiaoju
d9c86c49ae
refactor(daemon): load sense/workflow bundles from dist/ directory
...
Workspace build output moved from senses/<name>/index.js and
workflows/<name>/dist/index.js to dist/senses/<name>/index.js
and dist/workflows/<name>/index.js.
Refs #274
小橘 <xiaoju@shazhou.work >
2026-04-30 09:16:25 +00:00
xiaomo
0d78df89b1
refactor(core): consolidate file structure — 22 files → 6 ( closes #273 )
2026-04-30 09:15:18 +00:00
xiaomo
0140cdd952
Merge pull request 'refactor: RFC-005 — Separate Agent and Role types' ( #272 ) from refactor/rfc-005-phase-1 into main
2026-04-30 08:29:12 +00:00
xiaomo
bfadfffd40
fix: move isDryRun to value export (not type-only)
2026-04-30 08:27:07 +00:00
xiaomo
e6093c35db
docs: update knowledge cards for RFC-005 (ThreadContext, AgentFn)
2026-04-30 08:09:05 +00:00
xiaomo
de8c7c5150
fix: address review — revert unrelated sense-worker change, restore isDryRun as deprecated
2026-04-30 08:00:46 +00:00
xiaomo
f799cee51f
refactor(cli,docs): RFC-005 Phase 4 — update templates, tests, docs ( closes #271 )
2026-04-30 07:24:11 +00:00
xiaomo
d13b59e787
refactor(daemon): RFC-005 Phase 3 — workflow-worker uses ThreadContext ( closes #270 )
2026-04-30 07:10:58 +00:00
xiaomo
975f15c66d
refactor(workflow-utils): RFC-005 Phase 2 — adapt to ThreadContext, new AgentFn signature ( closes #269 )
2026-04-30 06:59:15 +00:00
xiaomo
3e51335d91
refactor(core): RFC-005 Phase 1 — ThreadContext, AgentFn, Role signature ( closes #268 )
2026-04-30 06:54:03 +00:00
xiaoju
9c832b0e21
docs(knowledge): update cards via knowledge-extraction workflow (5q/round)
...
7 cards updated, 4 new cards added. Topics: signal-routing,
worker-isolation, storage-layer, adapter-isolation, sense contracts,
workflow runtime enforcement, coding conventions details.
小橘 <xiaoju@shazhou.work >
2026-04-30 05:56:29 +00:00
xiaoju
2387b73141
fix(daemon): remove stale exports openPeerDb, loadComputeFn from index
...
These functions were renamed/removed from sense-runtime.ts but index.ts
still re-exported them, causing rslib build to fail (no JS output).
小橘 <xiaoju@shazhou.work >
2026-04-30 05:56:24 +00:00
xiaoju
8824421f26
docs: remove Reflex concept from architecture docs and CLAUDE.md
...
Reflex was folded into Sense config (interval/on) and ComputeResult
(workflow trigger). Two extension points now: Sense + Workflow.
— 小橘 🍊 (NEKO Team)
2026-04-30 00:43:04 +00:00
xiaoju
b27a6aced8
feat: sense compute returns ComputeResult<T> with workflow trigger support
...
- SenseComputeFn returns ComputeResult<T> = null | { signal, workflow }
- sense-runtime persists result.signal, not result itself
- sense-worker sends workflow trigger message when workflow is non-null
- New SenseWorkflowTriggerMessage in IPC protocol
- Knowledge card updated to match
— 小橘 🍊 (NEKO Team)
2026-04-30 00:37:16 +00:00
xiaoju
bfd8fe729a
docs: update sense knowledge card to match pure compute API
...
- No args (no db, no peers, no signal)
- Runtime handles db.insert
- Export { compute, table }
— 小橘 🍊 (NEKO Team)
2026-04-30 00:28:23 +00:00
xiaoju
748df10e6a
fix: remove AbortSignal from SenseComputeFn
...
Compute is truly zero-arg now: () => Promise<T | null>.
Runtime handles timeout via Promise.race, sense doesn't need signal.
— 小橘 🍊 (NEKO Team)
2026-04-30 00:22:57 +00:00
xiaoju
3ef9cfcb27
Merge pull request 'refactor: pure sense compute — no db, no peers' ( #265 ) from refactor/pure-sense-compute into main
2026-04-30 00:11:57 +00:00
xiaoju
8c9adf08c5
refactor: pure sense compute — no db, no peers
...
SenseComputeFn is now (signal: AbortSignal) => Promise<T | null>.
sense-runtime handles db.insert when compute returns non-null.
Senses export { compute, table } — SenseModule type added to core.
Closes #264
Refs #260
— 小橘 🍊 (NEKO Team)
2026-04-30 00:07:49 +00:00
scottwei
08e8020cb6
Merge pull request 'feat: add sense contract types to nerve-core' ( #263 ) from feat/sense-contract into main
...
Reviewed-on: #263
2026-04-29 23:44:01 +00:00
xiaoju
e287e07dab
feat: add sense contract types to @uncaged/nerve-core
...
Export SenseComputeFn, SenseComputeOptions, SenseBlobStore,
SensePeerMap — formalizing the compute function signature that
senses must implement.
Closes #262
Refs #260
— 小橘 🍊 (NEKO Team)
2026-04-29 15:11:49 +00:00
xiaomo
239dfffb28
Merge pull request 'feat: add @uncaged/nerve-workflow-meta package' ( #259 ) from feat/workflow-meta-package into main
2026-04-29 14:48:57 +00:00
xiaoju
6ccb33bf40
feat: add @uncaged/nerve-workflow-meta package
...
Extract develop-sense and develop-workflow meta workflows into a
shared package. Reviewer and committer roles imported from their
respective packages.
Refs RFC-004 Phase 2
— 小橘 🍊 (NEKO Team)
2026-04-29 14:47:12 +00:00
xiaomo
0c95a9d716
Merge pull request 'feat: add @uncaged/nerve-role-reviewer package' ( #258 ) from feat/role-reviewer-package into main
2026-04-29 14:33:45 +00:00
xiaoju
aa64ea86ca
feat: add @uncaged/nerve-role-reviewer package
...
Extract shared reviewer role (diff analysis, convention checking) into
a reusable package. Identical logic currently duplicated across
develop-sense and develop-workflow workspaces.
Refs RFC-004 Phase 1
2026-04-29 14:31:36 +00:00
xiaomo
431627019a
Merge pull request 'feat: add @uncaged/nerve-role-committer package (RFC-004 Phase 1)' ( #257 ) from feat/rfc004-role-committer into main
2026-04-29 14:16:11 +00:00
xiaoju
915584ff11
feat: add @uncaged/nerve-role-committer package (RFC-004 Phase 1)
...
First shared role package. Extracts workspace committer into a
reusable package with decorator chain (withDryRun + onFail).
Also fixes workflow-utils test types (StartStep shape, TestMeta constraint).
2026-04-29 14:07:26 +00:00
xiaoju
3644cce2c8
Merge pull request 'docs: RFC-004 package architecture' ( #256 ) from docs/rfc-004-package-architecture into main
2026-04-29 14:03:02 +00:00
xiaoju
9855eba894
docs: RFC-004 package architecture — shareable workflows, roles & senses
2026-04-29 13:29:53 +00:00