Anto01
b1a3dd071e
feat(entities): inbox + cross-project (project="") support (Issue C)
Makes `inbox` a reserved pseudo-project and `project=""` a first-class
cross-project bucket. Unblocks AKC capturing pre-project leads/quotes
and cross-project facts (materials, vendors) that don't fit a single
registered project.
- projects/registry.py: INBOX_PROJECT/GLOBAL_PROJECT constants,
is_reserved_project(), register/update guards, resolve_project_name
passthrough for "inbox"
- engineering/service.py: get_entities scoping rules (inbox-only,
global-only, real+global default, scope_only=true strict).
promote_entity accepts target_project to retarget on promote
- api/routes.py: GET /entities gains scope_only; POST /entities accepts
project=null as ""; POST /entities/{id}/promote accepts
{target_project, note}
- engineering/wiki.py: homepage shows "Inbox & Global" cards with live
counts linking to scoped lists
- tests/test_inbox_crossproject.py: 15 tests (reserved enforcement,
scoping rules, API shape, promote retargeting)
- DEV-LEDGER.md: session log, test_count 463 -> 478
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 20:17:32 -04:00
..
2026-04-05 09:21:27 -04:00
2026-04-05 09:21:27 -04:00
2026-04-07 08:29:33 -04:00
2026-04-16 21:54:10 -04:00
2026-04-08 20:25:32 -04:00
2026-04-08 16:09:42 -04:00
2026-04-11 09:46:46 -04:00
2026-04-11 10:58:56 -04:00
2026-04-05 09:21:27 -04:00
2026-04-18 16:50:20 -04:00
2026-04-06 18:42:19 -04:00
2026-04-11 12:47:05 -04:00
2026-04-08 19:02:57 -04:00
2026-04-17 07:18:46 -04:00
2026-04-17 07:53:03 -04:00
2026-04-17 07:01:28 -04:00
2026-04-15 10:47:01 -04:00
2026-04-13 17:16:04 -04:00
2026-04-06 21:24:17 -04:00
2026-04-21 20:17:32 -04:00
2026-04-05 17:53:23 -04:00
2026-04-19 12:01:41 -04:00
2026-04-07 08:29:33 -04:00
2026-04-05 18:33:52 -04:00
2026-04-21 16:18:00 -04:00
2026-04-16 21:54:10 -04:00
2026-04-08 15:52:44 -04:00
2026-04-18 08:08:55 -04:00
2026-04-06 18:42:19 -04:00
2026-04-07 20:14:19 -04:00
2026-04-11 11:20:03 -04:00
2026-04-06 18:37:07 -04:00
2026-04-05 18:33:52 -04:00
2026-04-19 09:41:02 -04:00
2026-04-17 09:09:58 -04:00
2026-04-21 20:04:46 -04:00
2026-04-19 12:01:41 -04:00