12 Commits

Author SHA1 Message Date
d06d000ec0 fix(engine): validation errors return 400 instead of 500 (closes #34)
- Add ValidationError class for client-side input errors
- POST /events: ref format, type mismatch, nonexistent type → 400
- POST /objects: undefined type → 400
- POST /event-defs: schema validation → 400
- POST /projection-defs: value_schema, initial_value, source validation → 400
- All API handlers: catch ValidationError → 400 INVALID_INPUT
- Update 10 test cases to expect 400 + INVALID_INPUT
2026-04-13 09:07:56 +00:00
8702e8b1c3 feat: auto-cleanup logs older than 7 days
Request logs and reaction logs are automatically pruned on each request
via waitUntil. Zero-cost async cleanup, no cron needed.

小橘 🍊(NEKO Team)
2026-04-13 08:57:27 +00:00
cdd735e018 fix: UI crash on Reaction Logs — API returned 'logs' but UI expected 'reaction_logs'
Unified response key to reaction_logs in engine + tests + UI rebuild.

小橘 🍊(NEKO Team)
2026-04-13 08:48:09 +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
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
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
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
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