feat(consumerapi): Drops rename + slice 2 — the four-leaf member economy over the API#9
Merged
NetworkTheoryAppliedResearchInstitute merged 2 commits intoJul 13, 2026
Conversation
…Drops) Executes the locked 2026-07-09 naming decision: Drops is the product name of Cloudy's member-covenant record; the Go package stays 'record'. All six unexported domain-separation tags move to the drops/* namespace, and the package doc names the product. Done now because the window is closing: no durable logs and no external consumers exist yet, so the hash-derivation change is free today and becomes a migration once persistence lands. Also folds in the Phase-0 hygiene fix: internal/storage doc.go/audit.go pointed at Development/SCP-completion-roadmap.md, which moved to Development/Planning/ and was never resolvable for external cloners; the comments now name the roadmap's canonical home (sohocloud-protocol repo) with the NTARI-internal copy as a secondary pointer. Signed-off-by: Jodson Graves <info@ntari.org>
Composes economy, covenant, record (Drops), and dispute in the member-facing
server exactly as cmd/cloudy composes them headlessly: one shared member
directory, one operator Drops log, one Entry.ID->seq index serving both
cross-layer anchor joins. New surfaces:
- Drops: GET /drops/log, POST /drops (client-sealed dialogs; both parties
must be registered; the server can order but never author a covenant),
GET /drops/{id}, GET /drops/checkpoints — the checkpoint response carries
the record layer's REQUIRED honest label: stand_in=true until two or more
independent witnesses countersign (Phase-3 federation).
- Covenant: POST /assessments (member-signed, anchored to sealed dialogs via
recAnchors; duplicates 409; No-Trust requires a comment hash). Standing
remains distributions-only — no average anywhere in the surface.
- Economy: GET /credit/policy, /credit/accounts/{id}/balance and /history,
POST /credit/spends. While the governed policy is escrow mode the ledger
refuses every spend and the API reports it as a plain 409 — the
escrow->credit switch is a governed PolicyChange (bylaws s5.7), never an
API affordance, and no steward key exists in-process to sign one.
- Disputes: POST /disputes (complainant-signed filing), GET /disputes/{id},
POST /disputes/{id}/withdraw. No adjudicator key exists in-process, so no
ruling is producible; the doc labels operator-local filing as NOT the
Phase-3 lifecycle witnessing (filing at an independent witness upstream
of the operator) and does not simulate it.
Resolves the TestImportGraph failure slice 1 introduced: internal/consumerapi
is blessed as the member-facing composition root (Phase-1 design s2 — cloudyd
= composition root + consumer JSON API; cmd/cloudyd stays a thin main over
it), with the positive control extended so all three roots must import all
four JFA leaves. The stricter alternative — port-inversion so consumerapi
imports zero leaves — is noted in the session handoff for review.
Signed-off-by: Jodson Graves <info@ntari.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Transplants the two queued ladder commits onto main, in the handoff's PR order:
Also restores main to green: slice 1 (#7) tripped TestImportGraph (consumerapi composes the JFA leaves); slice 2 blesses internal/consumerapi as the member-facing composition root with the positive control extended, per the 2026-07-12 handoff. Prefer a rebase merge to keep the two signed commits distinct.