xingyue
a887fc04ca
fix: init creates data/senses dir, generates .js templates without TS annotations
...
- Add mkdirSync for data/senses/ in init command (#23 )
- Add defensive mkdirSync in sense-runtime before DB open (#23 )
- Change init template output from index.ts to index.js (#24 )
- Remove TypeScript type annotations from CPU usage template (#25 )
Closes #23 , closes #24 , closes #25
2026-04-22 21:15:42 +08:00
xiaoju
097a4790be
fix: address PR #12 review — cross-platform, pkg manager detection, exports
...
- status.ts: wrap /proc in try/catch, fallback to PID file mtime (macOS safe)
- init.ts: detect pnpm > yarn > npm instead of hardcoding pnpm
- init.ts: use dirname() instead of join(.., '..')
- index.ts: restore createKernel/Kernel re-exports (non-breaking)
- start.ts: use fileURLToPath(import.meta.url) for daemon spawn
- start.ts: use logStream.fd instead of double type cast
- validate.ts: remove misleading error numbering
小橘 🍊 (NEKO Team)
2026-04-22 10:32:06 +00:00
xiaoju
ad2b40dd4f
feat: implement Phase 5 CLI & User Workspace
...
- Restructure CLI with citty multi-command framework
- nerve init: create workspace skeleton at ~/.uncaged-nerve/
- nerve start: foreground + daemon (-d) modes with graceful shutdown
- nerve stop: SIGTERM → 10s wait → SIGKILL, PID file cleanup
- nerve status: show pid, uptime, senses, workers
- nerve validate: parse nerve.yaml with error reporting
- workspace.ts: shared utilities (PID file, paths, isRunning)
- Example cpu-usage sense with realistic os.cpus() compute
小橘 🍊 (NEKO Team)
2026-04-22 10:16:41 +00:00
xiaoju
b4ef669607
fix: address all 9 PR #11 review issues
...
Critical:
- cli.ts: add shuttingDown guard to prevent double shutdown race
- kernel.ts: check child.connected before IPC send
Warning:
- Rewrite IPC round-trip test to verify actual signal flow
- Rewrite crash recovery test to kill kernel-managed worker
- parseArgs: explicitly handle 'start' subcommand
- Respawn: reset scheduler in-flight state for crashed group
Suggestions:
- Re-export KernelOptions from index.ts
- Add comment explaining mock-worker.mjs format
- Replace setTimeout with pollUntil helper
小橘 🍊 (NEKO Team)
2026-04-22 09:57:06 +00:00
xiaoju
22b3690327
feat(cli,daemon): Phase 4 — Process Manager & Isolation
...
- CLI entry point: `nerve start [--root <path>]` with SIGINT/SIGTERM handling
- Kernel exports groups/senseCount for startup logging
- daemon tsup builds sense-worker.ts as separate entry point
- Integration tests with mock worker (IPC round-trip, crash recovery, graceful shutdown)
- CLI re-exports createKernel/Kernel from daemon
59 tests (was 54), all green. biome check passes.
Closes #5
小橘 🍊 (NEKO Team)
2026-04-22 09:45:19 +00:00
xiaoju
d643ccf5af
fix: rename packages to @uncaged/nerve-{core,cli,daemon}
2026-04-22 06:29:08 +00:00
xiaoju
a7126c453f
chore: monorepo scaffolding — pnpm workspaces, biome, tsup, coding conventions
...
- packages/core, packages/cli, packages/daemon
- biome: noDefaultExport, useNodejsImportProtocol, noStaticOnlyClass
- docs/coding-conventions.md: 函数式优先,type over interface
2026-04-22 06:05:21 +00:00