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.
52 lines
1.9 KiB
Plaintext
52 lines
1.9 KiB
Plaintext
;; next/genesis/manifest.sx
|
|
;;
|
|
;; Genesis bundle root per design §12.2. Lists every definition file
|
|
;; that gets packed into the bundle. The bundler (bootstrap.erl)
|
|
;; walks this manifest, reads each referenced file, parses its
|
|
;; top-level form, and inserts it into the bundle dict at the
|
|
;; appropriate section path.
|
|
;;
|
|
;; The bundle CID is the content-address of the resulting dag-cbor
|
|
;; (or v1 stand-in) blob over the assembled dict. That CID is
|
|
;; baked into the kernel at build time and re-verified on startup
|
|
;; per design §12.3.
|
|
;;
|
|
;; Section values are bare parenthesised paths (data lists, not
|
|
;; function calls) — the manifest is consumed by `parse`, not
|
|
;; `eval`. Empty sections are written as `()`.
|
|
|
|
(GenesisManifest
|
|
:version "0.0.1"
|
|
:kernel-version "1.0.0-m1"
|
|
:activity-types ("activity-types/create.sx"
|
|
"activity-types/update.sx"
|
|
"activity-types/delete.sx"
|
|
"activity-types/announce.sx"
|
|
"activity-types/endorse.sx")
|
|
:object-types ("object-types/sx-artifact.sx"
|
|
"object-types/note.sx"
|
|
"object-types/tombstone.sx"
|
|
"object-types/person.sx"
|
|
"object-types/service.sx"
|
|
"object-types/group.sx"
|
|
"object-types/define-activity.sx"
|
|
"object-types/define-object.sx"
|
|
"object-types/define-projection.sx"
|
|
"object-types/define-validator.sx"
|
|
"object-types/define-codec.sx"
|
|
"object-types/define-sig-suite.sx"
|
|
"object-types/snapshot.sx")
|
|
:projections ("projections/activity-log.sx"
|
|
"projections/by-type.sx"
|
|
"projections/by-actor.sx"
|
|
"projections/by-object.sx"
|
|
"projections/actor-state.sx"
|
|
"projections/define-registry.sx"
|
|
"projections/audience-graph.sx")
|
|
:validators ("validators/envelope-shape.sx"
|
|
"validators/signature.sx"
|
|
"validators/type-schema.sx")
|
|
:codecs ("codecs/dag-cbor.sx" "codecs/raw.sx" "codecs/dag-json.sx")
|
|
:sig-suites ("sig-suites/rsa-sha256-2018.sx" "sig-suites/ed25519-2020.sx")
|
|
:audience ("audience/public.sx" "audience/followers.sx" "audience/direct.sx"))
|