Skip to content

v0.3.0: remove agent service, beef up reef tests, changelog#7

Merged
AlephNotation merged 5 commits intomainfrom
cleanup-v030
Mar 1, 2026
Merged

v0.3.0: remove agent service, beef up reef tests, changelog#7
AlephNotation merged 5 commits intomainfrom
cleanup-v030

Conversation

@AlephNotation
Copy link
Contributor

Remove agent service

services/agent/ deleted — it was the old model (/agent/tasks for fire-and-forget, /agent/sessions for RPC chat). src/reef.ts replaces both:

Old (/agent/*) New (/reef/*)
POST /agent/tasks (fire-and-forget pi -p) POST /reef/submit (per-task RPC with tree integration)
POST /agent/sessions + /message (long-lived session) Conversation continuation via parentId
No tree, no SSE events Every event is a tree node, broadcast with nodeId/parentId

Cron agent jobs updated: /agent/tasks/reef/submit

Reef tests (8 → 20)

  • Tree integration: submit creates user node as child of main
  • Continuation: parentId creates child of assistant, reopens task
  • Validation: 400 for missing/non-string task
  • Tree API: node + children, ancestor path, 404s
  • Task queries: list, filter by status, detail with ancestor path
  • State: reflects submitted tasks and node count
  • Test isolation: REEF_DATA_DIR env var prevents test pollution

Version 0.3.0

Full changelog covers everything since 0.2.0: event tree, per-task pi, conversation continuation, store service, cron service, feed UI, biome linter, removed agent service + branch/merge/loop.

277 tests, 0 failures, 0 lint errors.

Remove agent service:
- services/agent/ deleted — replaced entirely by src/reef.ts
- /agent/tasks and /agent/sessions endpoints gone; use POST /reef/submit
- Cron agent jobs now post to /reef/submit instead of /agent/tasks

Reef tests (8 → 20):
- Tree integration: submit creates user node, node is child of main
- Continuation: parentId creates child of assistant, reopens task
- Validation: 400 for missing/non-string task
- Tree API: node + children, ancestor path, 404s
- Task listing: filter by status, task detail with path
- State: reflects submitted tasks
- REEF_DATA_DIR env var for test isolation

Changelog:
- Document event tree, per-task pi, conversation continuation
- New services: store, cron
- Feed UI: threaded feed, branch conversations
- Agent tools: reef_task_list/read, reef_store_*
- Removed: agent service, branch/merge/loop
- Developer experience: biome linter, pre-commit hook

277 tests, 0 failures, 0 lint errors
spawn() throws synchronously if the binary doesn't exist. Wrap in
try/catch so the task is marked as error instead of crashing the
server. Fixes CI where pi is not installed.
- launchTask(task, taskId, userNode, treeContext) owns pi spawn + tree wiring
- failTask(task, taskId, error) shared by onError callback and catch block
- Submit handler is now: validate → create node → broadcast → launch → respond
spawn() may not throw synchronously — instead the child emits an
'error' event. Without a listener, this crashes the process.
Add child.on('error') handler that calls failTask.
@AlephNotation AlephNotation merged commit 41b4b60 into main Mar 1, 2026
1 check passed
@AlephNotation AlephNotation deleted the cleanup-v030 branch March 1, 2026 06:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant