fed-sx-m2: Step 11a — Announce + Endorse genesis activity-types + 4 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 35s

Two new DefineActivity SX files in next/genesis/activity-types/
per design §13.5 / Step 11:

  announce.sx — Re-broadcast a peer's activity to followers.
    :object is the CID of the activity being announced.
    :schema requires :object to be a string.
    Followers see the Announce in their inbox; their projection
    decides whether to fetch the wrapped activity body.

  endorse.sx — Cross-actor signal on a target activity.
    :object is the target activity's CID; :kind is the
    endorsement variant (e.g. 'like', 'share').
    :schema requires both :object and :kind to be strings.
    Projections aggregate endorsements into counters / heat /
    ranking signals.

M1's Note object-type is unchanged — Create{Note{...}} is still
the publish path for short authored messages. The runtime-publish
demo (verb extensibility via Create{DefineActivity{...}} at
runtime) from M1 §9a continues to work; these files are the
genesis pre-shipped variants for v2 baseline so peers don't have
to negotiate verb definitions on first contact.

Manifest extended:
  :activity-types  3 -> 5 entries
  total genesis    34 -> 36 entries

Hardcoded count assertions bumped in:
  bootstrap_read.sh  (activity_types 3->5, first-section-count 3->5)
  bootstrap_load.sh  (activity_types 3->5)
  bootstrap_populate.sh (total 34->36, activity_types 3->5)
  bootstrap_start.sh (activity_types 3->5, total 34->36)

genesis_parse.sh +4 cases (head form + name for both files).
bootstrap_populate.sh internal sx_server timeout bumped
300s -> 600s to fit the larger genesis bundle.

61/61 in genesis_parse.sh, 15/15 in bootstrap_read.sh,
15/15 in bootstrap_load.sh, 14/14 in bootstrap_populate.sh,
12/12 in bootstrap_build.sh.
This commit is contained in:
2026-06-07 04:38:32 +00:00
parent aa27d903ac
commit 80f6fc9279
9 changed files with 76 additions and 11 deletions

View File

@@ -726,7 +726,16 @@ re-broadcast another actor's content to their own followers.
**Deliverables:**
- Three new SX files in a `next/genesis/runtime-verbs/` directory.
- [x] **11a** — Announce + Endorse genesis activity-types
(Note already exists as an object-type from M1 — Create{Note}
is the publish path). Two new `DefineActivity` SX files in
`next/genesis/activity-types/` with `:name`, `:doc`,
`:schema` (Announce: `:object` must be a string CID; Endorse:
`:object` and `:kind` must both be strings). Manifest updated
to 5 activity-types / 36 total entries. Hardcoded count
assertions bumped in `bootstrap_read.sh`, `bootstrap_load.sh`,
`bootstrap_populate.sh`, `bootstrap_start.sh`. `genesis_parse.sh`
+4 cases for the two new files (head form + name).
- Each is shipped to a fresh instance via a bootstrap manifest entry
*or* published as the first activity on the actor's outbox; either
works because of the verb-extensibility mechanism.
@@ -985,6 +994,21 @@ proceed.
Newest first.
- **2026-06-07** — Step 11a: Announce + Endorse genesis
activity-types. Two new DefineActivity SX files in
`next/genesis/activity-types/`: announce.sx (`:object` is a
CID string — the referenced activity to re-broadcast),
endorse.sx (`:object` is a CID, `:kind` is a string variant
like 'like' or 'share'). Manifest extended to 5 activity-types /
36 total entries. Bootstrap suite count assertions bumped
(`bootstrap_read`, `bootstrap_load`, `bootstrap_populate`,
`bootstrap_start`). `genesis_parse.sh` +4 cases. M1's Note
object-type is unchanged — Create{Note{...}} is still the
publish path. The runtime-publish demo (verb extensibility
via `Create{DefineActivity{...}}` at runtime) from M1 §9a
still works; these files are the genesis pre-shipped
variants for v2 baseline.
- **2026-06-07** — Step 10b: webfinger HTTP route.
`GET /.well-known/webfinger?resource=acct:user@host` lands in
`http_server.erl` next to the existing