artdag: record forward direction — jobs as a feed post (per host loop)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 13m11s

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-28 18:16:36 +00:00
parent e1fe5ab552
commit 550d0db5a5

View File

@@ -104,6 +104,24 @@ lib/artdag/optimize.sx lib/artdag/federation.sx
CSE (free from content-addressing) result import/export + provenance/trust CSE (free from content-addressing) result import/export + provenance/trust
``` ```
## Forward direction — artdag jobs as a feed "post" (per the host loop)
artdag jobs will become a **type of post**: a job rides as the `:object` of a feed
activity (`{:actor :verb :object :at :tags}`, `:verb` "post"), served through the host
loop's `GET/POST /feed`. The engine already has the primitives; the wrapping lives on the
**host/feed** side, NOT in `lib/artdag`:
- **content-id = the post/object id** (stable structural digest = natural AP object id).
- **wire format = the post payload** — `dag->wire`/`dag->string` are self-describing +
content-addressed and survive `write-to-string`/`read`; `wire-verify` re-checks ids on
receipt (self-verifying embeddable object).
- **federation already mirrors the feed** — `fed-export`/`fed-import` are trust-gated with
provenance; a re-posted job dedupes/cache-hits by global content-id.
Boundary: host loop owns the `dag ⇄ feed-object` adapter; `lib/artdag` stays the engine.
Candidate artdag-side affordance (only if wanted here): a thin `job->post-object` /
`post-object->job` projection so host never reaches into wire internals. Not yet built —
flagged, not scheduled.
## Phase 1 — DAG model + content addressing ## Phase 1 — DAG model + content addressing
- [x] `lib/artdag/dag.sx` — node `{:op :inputs :params}`; structural content-id = - [x] `lib/artdag/dag.sx` — node `{:op :inputs :params}`; structural content-id =