c6d880fd71
feat(dispatcher): use server-side incremental query (after=) from #26
...
- fetchEvents no longer reverses results (after= returns ASC)
- Watcher removes client-side id filtering (server handles it)
- Updated test mock to match ASC order
2026-04-13 08:12:46 +00:00
ce5e1005f7
fix: update D1 database_id in wrangler.toml
...
小橘 🍊
2026-04-13 08:10:26 +00:00
a19b144de7
feat: GET /events?after=N incremental query support ( #26 )
...
- Engine: findEventsByRef accepts optional afterId parameter
- SQL: WHERE id > ? with ASC ordering for after queries
- Route: GET /events?after=N, combinable with ?ref=X
- CLI: events find --after <id> option
- Tests: 2 new tests (engine 105 total)
Closes #26
小橘 🍊 (NEKO Team)
2026-04-13 08:09:17 +00:00
752f765132
feat(dispatcher): object name mapping for human-readable summaries
...
Config adds names: { '3': '小墨 🖊️ ', '5': '小橘 🍊 ' }
Summary now shows '由 小墨 🖊️ 创建' instead of 'agent:3'
Added task_assigned and task_commented to summary format
2026-04-13 08:07:58 +00:00
9088487673
fix(cli): update deploy test to match latest migration ( #22 )
2026-04-13 08:01:14 +00:00
9d8ebe9f74
feat(dispatcher): AgentClient interface + OC Plugin integration ( #32 )
...
- New AgentClient interface: push(actor, events, summary?)
- OcPluginAgentClient: POST to /plugins/ograph/dispatch
- Scheduler rewritten: uses AgentClient instead of Telegram/file/CLI
- Removed OC session-status dependency (Plugin manages backpressure)
- Removed cooldown logic (Plugin debounce replaces it)
- Config supports agents[] array with type/url/secret/actor
- End-to-end verified: Engine → Dispatcher → Plugin → Agent session
Closes #32
2026-04-13 07:38:44 +00:00
a3aa77eb31
feat: add event stream discovery mode for P0 Task system
...
- Add discovery config with agentId and optional eventTypes filtering
- Add fetchEvents method to OGraphClient for event stream access
- Update Watcher to support both projection and event stream modes
- Update Scheduler to format event stream messages appropriately
- Add comprehensive tests for event stream diff logic and API client
- Maintain backward compatibility with existing projection mode
- Support OGRAPH_AGENT_ID environment variable override
This enables P0 Task system to discover changes from event streams
without requiring Projection fixes (#19 ). Event stream mode activated
when config.discovery is present, otherwise falls back to projection mode.
2026-04-13 04:52:07 +00:00
98bee0aedd
feat(engine): projection health status — errored projections stop updating ( #20 )
2026-04-13 02:59:01 +00:00
21e159ffd5
chore(api): remove unused admin/readonly API key roles ( #16 )
2026-04-13 02:32:51 +00:00
50fef48ebe
feat(cli): complete API coverage — logs, api-keys, schema, handler ( #14 )
2026-04-13 02:25:24 +00:00
e57bbb2727
feat(api): add type_name to events + /schema endpoint ( #15 )
2026-04-13 02:12:24 +00:00
eb7edd8141
feat(api): unify response format + GET single + error codes ( #13 )
2026-04-13 02:04:36 +00:00
小橘 🍊
e82fe8eaba
feat: OGraph Dispatcher — dual-loop actor for task notification ( #4 P0) ( #17 )
...
* feat: add packages/dispatcher — dual-loop OGraph projection watcher + OC scheduler
Adds a new Node.js daemon that:
- Loop A (ProjectionWatcher): polls OGraph projections, diffs against
snapshot, merges changes into a pending queue.
- Idle: 30s poll interval; active (changes detected): 5s
- Loop B (OcScheduler): polls OC session-status, pushes pending queue
when OC has available slots (>= minAvailable).
- Idle (no pending): 60s; active (pending): 5s
- Cooldown of 60s after each push to avoid spam
Tech:
- TypeScript + esbuild (zero runtime external deps)
- Graceful error handling: each poll is independent try-catch, errors
logged but never crash the process
- Config from ~/.config/ograph/dispatcher.json + env-var overrides
- OGRAPH_CONFIG_FILE env var for config path override
- Push via /tmp/ograph-dispatch.json + openclaw message send (best-effort)
Build: npm run build → dist/index.js
Run: node dist/index.js
* fix: address PR #17 review — package name, tests, shell safety, first-run
---------
Co-authored-by: 小墨 <xiaomooo@shazhou.work>
2026-04-13 10:01:48 +08:00
b6935fc311
feat(ui): add create object — inline type selector
...
小橘 🍊 (NEKO Team)
2026-04-13 01:10:32 +00:00
4d63e1943f
feat(ui): add event emit form — schema-driven
2026-04-13 01:07:07 +00:00
d520df29d4
feat(cli): add deploy command + CF 1042 retry ( #218 )
...
- deploy: one-click OGraph deployment to Cloudflare (D1 + Worker)
- cloudflare.ts: CF REST API client (verify, accounts, D1, Worker upload)
- client.ts: auto-retry on CF 1042 edge propagation delay
- readiness check: require 3 consecutive health OKs before declaring ready
- 49 CLI tests passing (18 new deploy tests)
2026-04-13 00:00:13 +00:00
d84a860d15
feat: initial ograph repo — engine (85 tests) + cli (31 tests)
...
Extracted from uncaged monorepo (oc-xiaoju/uncaged).
Resolves oc-xiaoju/uncaged#224 .
- @uncaged/ograph: CF Worker engine (events, projections, reactions)
- @uncaged/ograph-cli: CLI for managing OGraph instances
- Removed @uncaged/oid dependency (unused)
- 116 tests, all passing
- CI: GitHub Actions
小橘 🍊 (NEKO Team)
2026-04-12 23:43:56 +00:00