Add consent-gated media exchange library

This commit is contained in:
jjbrunton committed 2026-08-09 19:24:38 +01:00
1 parent b8e4a1bb88
commit bf474dfe10
42 files changed
+2533 -9

No files matched your search

+3 -1
View File
@@ -58,7 +58,8 @@ SIGINT/SIGTERM abort shared loops, stop account runtimes, stop the web server, c
- Reddit request coordinator (shared across runtime construction);
- recipient history/reservations across accounts;
- Express server, dashboard assets, event stream, and operational jobs;
- configured subreddit catalog and application policy.
- configured subreddit catalog and application policy;
- shared operator-owned exchange library, classification metadata, and outbound-use ledger;
### Account-scoped
@@ -132,6 +133,7 @@ docs/ Maintainer and agent documentation
- New transport field: define it in `packages/api-contracts`, return it from the route, consume it in the dashboard, and add contract/route/UI tests.
- New API operation: add a focused router, register it in `src/web/server.ts`, describe it in `src/web/api-catalog.ts`, regenerate `docs/api.md`, and add authorization tests.
- New persisted state: add an append-only migration, expose it through a small repository, and test fresh plus upgraded databases.
- Shared operator media: keep it under `MediaLibraryService`/`MediaLibraryRepository`; never merge it with account-owned received media.
- New account behavior: place it in the account runtime or a service injected into it; do not add mutable cross-account identity to a singleton.
- New candidate stage: make transitions durable and idempotent, expose counts/reasons, and define lease/retry behavior.
- New dashboard feature: add a feature slice and route, use shared schemas and query keys, and treat HTTP as authoritative.