小糯 🐱
5cc46b3e9b
fix(engine): return 204 for /favicon.ico instead of 401
...
Browser requests to /favicon.ico were hitting the auth middleware.
Added explicit route + auth bypass.
2026-04-13 17:14:51 +08:00
bd4b79bd7b
fix(ui): Projection ref params now filter objects by matching type
...
- RefCombobox infers object_type from param name when not explicitly set
- e.g. param 'agent' automatically shows only agent-type objects
- Also fixed engine type signature to preserve object_type in params
小橘 🍊 (NEKO Team)
2026-04-13 09:13:38 +00:00
0c22885f4a
feat(ui): hash router — each page has a shareable URL ( #35 )
...
- #/health, #/events, #/reaction-logs, etc.
- Browser back/forward navigation works
- Refresh preserves current page
- No new dependencies (hand-rolled hash router)
Closes #35
小橘 🍊 (NEKO Team)
2026-04-13 09:08:43 +00:00
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