01a0953e - Add a public Trust Chain that loads neighbors on click - #125
Merged
Merged
Conversation
TaprootFreakAI
force-pushed
the
01a0953e-trust-chain
branch
2 times, most recently
from
September 13, 2026 10:52
650fbb5 to
5ae1b10
Compare
TaprootFreakAI
marked this pull request as ready for review
September 13, 2026 11:01
TaprootFreakAI
marked this pull request as draft
September 13, 2026 19:47
TaprootFreakAI
force-pushed
the
01a0953e-trust-chain
branch
from
September 13, 2026 20:39
5ae1b10 to
f29ad4c
Compare
TaprootFreakAI
force-pushed
the
01a0953e-trust-chain
branch
from
September 14, 2026 06:36
0e95ee1 to
3fd2cc0
Compare
TaprootFreakAI
marked this pull request as ready for review
September 14, 2026 07:27
TaprootFreakAI
marked this pull request as draft
September 14, 2026 07:37
TaprootFreakAI
force-pushed
the
01a0953e-trust-chain
branch
2 times, most recently
from
September 14, 2026 11:09
14d55ce to
2cd0f94
Compare
TaprootFreakAI
marked this pull request as ready for review
September 14, 2026 13:23
TaprootFreakAI
marked this pull request as draft
September 14, 2026 19:24
TaprootFreakAI
force-pushed
the
01a0953e-trust-chain
branch
2 times, most recently
from
September 14, 2026 19:57
624f640 to
c602a2d
Compare
TaprootFreakAI
marked this pull request as ready for review
September 14, 2026 20:33
TaprootFreakAI
marked this pull request as draft
September 15, 2026 01:27
TaprootFreakAI
force-pushed
the
01a0953e-trust-chain
branch
4 times, most recently
from
September 15, 2026 09:42
72cb024 to
a15a7b6
Compare
Persist trust edges, expose GET /trust-chain from stored nodes and edges, and add staff POSTs to verify, propose, confirm, or appoint. Operator PATCH still sets role only; POST /debug/trust-edges backfills.
Wrap Hono request helpers in Promise.resolve and drop a never-matching propose-kind comparison on public edges.
Prettier the new sources and drop brace-wrapped @throws tags that eslint-plugin-tsdoc treated as inline tags.
InMemoryAuthStore ignores a create when viewKey is already taken, so shared fixture keys dropped later accounts and staff sessions 401ed. Make insertEdge async so duplicate throws reject as a Promise.
Passing undefined into a default parameter still used the secret, so the unconfigured case never hit 503.
Same-role same-time nodes are ordered by id from either input order. The equal-id comparator arm is unreachable for unique account ids.
Staff verify, confirm, and appoint persist the unique edge first so a duplicate kind, including debug backfill, returns 409 with the role unchanged. Handbook Function sections list trustStore; the sort-tie return is covered without a coverage ignore.
Bare GET /trust-chain returns founder seeds only. ?around= returns that account plus one hop of stored public edges so a large chain is not dumped on first paint.
Bare GET /trust-chain (or empty around) is founder seeds. A supplied around that is not a uuid, unknown, or basis is 404, including Postgres 22P02.
Bare GET 200 example is founder seeds with empty edges. Neighborhood example is a one-hop public edge. Staff POSTs document 503. Empty around is founder seeds in unit and e2e tests.
Unexpected store throw is 503 Trust chain is unavailable, logged as debug.trust_edges.failed, matching the route and handbook.
POST /debug/trust-edges success logs subjectId, actorId, and kind, matching the route and the staff trust write logs in SPEC.
The rebase kept both the trust_edge-before-db_change check and the fiat-table order check; they shared one identifier.
SPEC already requires unexpected store throws to return Trust chain is unavailable. getAccount sat outside the catch that covered insert and list, so a Postgres query failure escaped.
The role table and debug PATCH notes still said only a moderator assigns Verified; staff POSTs already let a founder confirm too.
The SPEC table still called GET /trust-chain a full stored graph; bare GET returns founder seeds and empty edges.
Prettier reflows the decision table and env tree after merging develop's 2026-09-14 rows with Trust Chain.
The env table and Trust Chain changelog now match prettier@3.9.4 from the lockfile.
Bare GET /trust-chain returns founder seeds; ?around= is one hop of stored public edges. Non-uuid, unknown, or basis around is 404.
Develop notifies every account except the actor; Web Push stays bell-only. The Trust Chain changelog rows stay after that.
The Trust Chain merge had glued Returns onto the Inputs line.
TaprootFreakAI
force-pushed
the
01a0953e-trust-chain
branch
from
September 15, 2026 10:49
3c1f6a8 to
51d3b5e
Compare
Collaborator
Author
|
EN: DE: DetailsHead |
TaprootFreakAI
marked this pull request as ready for review
September 15, 2026 12:29
TaprootFreak
approved these changes
Sep 15, 2026
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.
EN:
Adds a public Trust Chain of stored who-verified-whom edges. Bare GET /trust-chain returns founder seeds only; ?around= returns one hop so a large chain is not dumped on first paint.
Staff POSTs write those edges; operator PATCH still sets role without writing history.
DE:
Fügt eine öffentliche Trust-Kette aus gespeicherten Kanten hinzu, wer wen verifiziert hat. Das nackte GET /trust-chain liefert nur Founder-Kerne; ?around= liefert einen Hop, damit eine grosse Kette nicht beim ersten Laden kommt.
Staff-POSTs schreiben diese Kanten; Operator-PATCH setzt die Rolle weiterhin ohne Historie.
Details
Bare
GET /trust-chainreturns founder accounts with emptyedges.GET /trust-chain?around=<id>returns that chain member plus stored public edges that touch them (verify,moderator_confirm,moderator_appoint;moderator_proposeomitted). Unknown orbasisaround is 404. Store throw is 503.TrustStore.listEdgesTouchingis the indexed 1-hop query (subject_idoractor_id). Public JSON stays{nodes,edges}with no secrets.