Skip to content

One manual in place of twenty-six pages - #359

Open
wenjing wants to merge 1 commit into
mainfrom
docs-one-manual
Open

One manual in place of twenty-six pages#359
wenjing wants to merge 1 commit into
mainfrom
docs-one-manual

Conversation

@wenjing

@wenjing wenjing commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

26 pages, about 3,400 lines, no owner, heavy overlap — five of them about benchmarking. Nobody
read the set as a whole, which is how a walkthrough came to show a captured session naming
intermediaries that no longer existed, inside an encoded message that could not be corrected by
hand.

The failure was not that individual pages were wrong. Correctness cannot be maintained across
twenty-six overlapping documents, so it was not maintained. The remedy is less documentation
rather than better-organised documentation
: write down what has to be true, and let the
specification and the generated API documentation carry the rest.

What replaces it

docs/manual.md, 304 lines, four parts:

  1. Using the protocol — the command line tool: identities, direct messages, routing through
    intermediaries, nesting. Absorbs all five CLI pages.
  2. Embedding the library — the wallet, send and receive, transports, custom identifier types
    and storage. Points at docs.rs rather than restating the API.
  3. Operating the services — the DID server and intermediaries: what they need, why an
    intermediary's identity must persist, and why its wallet is a single object rather than a
    mounted filesystem. This had no page at all, and it is where the failures of the past days
    would have been prevented.
  4. Working on the SDK — layout, the checks, and why the container builds differently from all
    of them. Benchmarking is one section rather than five pages.

Also removed

mdBook, its configuration, and the workflow installing it and a mermaid preprocessor that was
never checked in — it already broke the docs build locally. Twenty anchor comments in the Rust and
Python sources existed only to feed its include directives, which do not render on GitHub anyway.

Kept

Three design records that were never part of the book: the buffer protocol design, the survey of
how other systems buffer messages, and the transport design implemented from it. Those are
records of thinking rather than user documentation.

Not addressed here

docs.teaspoon.world still needs retiring; nothing in the repository points at it any more.

The documentation was 26 pages and about 3,400 lines with no owner and
heavy overlap — five of them were about benchmarking. Nobody read the set
as a whole, which is how a walkthrough came to show a captured session
naming intermediaries that no longer existed, inside an encoded message
that could not be corrected by hand.

The failure was not that pages were wrong. Correctness cannot be
maintained across twenty-six overlapping documents, so it was not. The
remedy is less documentation rather than better-organised documentation:
document what has to be true and let the specification and the generated
API documentation carry the rest.

One document now, in four parts: using the protocol from the command
line, embedding the library, operating the services, and working on the
SDK. Operating the services had no page at all before, and it is where
the failures of the past days would have been prevented.

mdBook goes with it, along with its configuration and the workflow that
installed it and a mermaid preprocessor that was never checked in. Twenty
anchor comments in the Rust and Python sources existed only to feed its
include directives and are removed too.

Three design records that were never part of the book are kept: the
buffer protocol design, the survey of how other systems buffer messages,
and the transport design that was implemented from it.

Signed-off-by: Wenjing Chu <chu.wenjing@gmail.com>
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🐰 Bencher Report

Projecttsp project
Branchpr-359
Testbedubuntu-latest

⚠️ WARNING: Truncated view!

The full continuous benchmarking report exceeds the maximum length allowed on this platform.

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

🐰 View full continuous benchmarking report in Bencher

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🐰 Bencher Report

Projecttsp project
Branchpr-359
Testbedubuntu-latest

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkEstimated Cyclescycles x 1e6Instructionsinstructions x 1e3L1 Hitshits x 1e6LL Hitshits x 1e3RAM HitshitsTotal read+writereads/writes x 1e6
guardrail_hpke::guardrail_hpke::guardrail_crypto_seal_open_hpke direct_0b:setup_seal_open("guardrail.crypto.seal_open.hpke.direct.0B", 0)📈 view plot
⚠️ NO THRESHOLD
4.88 x 1e6📈 view plot
⚠️ NO THRESHOLD
3,502.64 x 1e3📈 view plot
⚠️ NO THRESHOLD
4.80 x 1e6📈 view plot
⚠️ NO THRESHOLD
3.44 x 1e3📈 view plot
⚠️ NO THRESHOLD
1,743.00📈 view plot
⚠️ NO THRESHOLD
4.81 x 1e6
guardrail_hpke::guardrail_hpke::guardrail_crypto_seal_open_hpke direct_16kib:setup_seal_open("guardrail.crypto.seal_open.hpke.direct.16KiB", 16 * 1024)📈 view plot
⚠️ NO THRESHOLD
7.49 x 1e6📈 view plot
⚠️ NO THRESHOLD
5,515.32 x 1e3📈 view plot
⚠️ NO THRESHOLD
7.37 x 1e6📈 view plot
⚠️ NO THRESHOLD
7.27 x 1e3📈 view plot
⚠️ NO THRESHOLD
2,583.00📈 view plot
⚠️ NO THRESHOLD
7.38 x 1e6
guardrail_hpke::guardrail_hpke::guardrail_crypto_seal_open_hpke direct_1kib:setup_seal_open("guardrail.crypto.seal_open.hpke.direct.1KiB", 1024)📈 view plot
⚠️ NO THRESHOLD
5.04 x 1e6📈 view plot
⚠️ NO THRESHOLD
3,631.55 x 1e3📈 view plot
⚠️ NO THRESHOLD
4.96 x 1e6📈 view plot
⚠️ NO THRESHOLD
3.58 x 1e3📈 view plot
⚠️ NO THRESHOLD
1,855.00📈 view plot
⚠️ NO THRESHOLD
4.96 x 1e6
guardrail_hpke::guardrail_hpke::guardrail_crypto_sign_verify_ed25519 direct_0b:setup_sign_verify("guardrail.crypto.sign_verify.ed25519.direct.0B", 0)📈 view plot
⚠️ NO THRESHOLD
1.26 x 1e6📈 view plot
⚠️ NO THRESHOLD
888.66 x 1e3📈 view plot
⚠️ NO THRESHOLD
1.22 x 1e6📈 view plot
⚠️ NO THRESHOLD
1.68 x 1e3📈 view plot
⚠️ NO THRESHOLD
961.00📈 view plot
⚠️ NO THRESHOLD
1.22 x 1e6
guardrail_hpke::guardrail_hpke::guardrail_crypto_sign_verify_ed25519 direct_16kib:setup_sign_verify("guardrail.crypto.sign_verify.ed25519.direct.16KiB", 16 * 1024)📈 view plot
⚠️ NO THRESHOLD
3.35 x 1e6📈 view plot
⚠️ NO THRESHOLD
2,578.11 x 1e3📈 view plot
⚠️ NO THRESHOLD
3.27 x 1e6📈 view plot
⚠️ NO THRESHOLD
3.16 x 1e3📈 view plot
⚠️ NO THRESHOLD
1,789.00📈 view plot
⚠️ NO THRESHOLD
3.28 x 1e6
guardrail_hpke::guardrail_hpke::guardrail_crypto_sign_verify_ed25519 direct_1kib:setup_sign_verify("guardrail.crypto.sign_verify.ed25519.direct.1KiB", 1024)📈 view plot
⚠️ NO THRESHOLD
1.38 x 1e6📈 view plot
⚠️ NO THRESHOLD
990.88 x 1e3📈 view plot
⚠️ NO THRESHOLD
1.33 x 1e6📈 view plot
⚠️ NO THRESHOLD
1.81 x 1e3📈 view plot
⚠️ NO THRESHOLD
1,041.00📈 view plot
⚠️ NO THRESHOLD
1.34 x 1e6
🐰 View full continuous benchmarking report in Bencher

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🐰 Bencher Report

Projecttsp project
Branchpr-359
Testbedubuntu-latest

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkEstimated Cyclescycles x 1e6Instructionsinstructions x 1e6L1 Hitshits x 1e6LL Hitshits x 1e3RAM Hitshits x 1e3Total read+writereads/writes x 1e6
guardrail_pq::guardrail_pq::guardrail_crypto_seal_open_hpke_pq direct_0b:setup_seal_open("guardrail.crypto.seal_open.hpke_pq.direct.0B", 0)📈 view plot
⚠️ NO THRESHOLD
14.85 x 1e6📈 view plot
⚠️ NO THRESHOLD
10.94 x 1e6📈 view plot
⚠️ NO THRESHOLD
14.63 x 1e6📈 view plot
⚠️ NO THRESHOLD
29.37 x 1e3📈 view plot
⚠️ NO THRESHOLD
2.27 x 1e3📈 view plot
⚠️ NO THRESHOLD
14.66 x 1e6
guardrail_pq::guardrail_pq::guardrail_crypto_seal_open_hpke_pq direct_16kib:setup_seal_open("guardrail.crypto.seal_open.hpke_pq.direct.16KiB", 16 * 1024)📈 view plot
⚠️ NO THRESHOLD
25.97 x 1e6📈 view plot
⚠️ NO THRESHOLD
19.88 x 1e6📈 view plot
⚠️ NO THRESHOLD
25.61 x 1e6📈 view plot
⚠️ NO THRESHOLD
56.08 x 1e3📈 view plot
⚠️ NO THRESHOLD
2.34 x 1e3📈 view plot
⚠️ NO THRESHOLD
25.67 x 1e6
guardrail_pq::guardrail_pq::guardrail_crypto_seal_open_hpke_pq direct_1kib:setup_seal_open("guardrail.crypto.seal_open.hpke_pq.direct.1KiB", 1024)📈 view plot
⚠️ NO THRESHOLD
17.78 x 1e6📈 view plot
⚠️ NO THRESHOLD
13.38 x 1e6📈 view plot
⚠️ NO THRESHOLD
17.51 x 1e6📈 view plot
⚠️ NO THRESHOLD
36.94 x 1e3📈 view plot
⚠️ NO THRESHOLD
2.30 x 1e3📈 view plot
⚠️ NO THRESHOLD
17.55 x 1e6
guardrail_pq::guardrail_pq::guardrail_crypto_sign_verify_mldsa65 direct_0b:setup_sign_verify("guardrail.crypto.sign_verify.mldsa65.direct.0B", 0)📈 view plot
⚠️ NO THRESHOLD
9.09 x 1e6📈 view plot
⚠️ NO THRESHOLD
6.85 x 1e6📈 view plot
⚠️ NO THRESHOLD
8.92 x 1e6📈 view plot
⚠️ NO THRESHOLD
26.23 x 1e3📈 view plot
⚠️ NO THRESHOLD
1.10 x 1e3📈 view plot
⚠️ NO THRESHOLD
8.95 x 1e6
guardrail_pq::guardrail_pq::guardrail_crypto_sign_verify_mldsa65 direct_16kib:setup_sign_verify("guardrail.crypto.sign_verify.mldsa65.direct.16KiB", 16 * 1024)📈 view plot
⚠️ NO THRESHOLD
15.51 x 1e6📈 view plot
⚠️ NO THRESHOLD
11.95 x 1e6📈 view plot
⚠️ NO THRESHOLD
15.27 x 1e6📈 view plot
⚠️ NO THRESHOLD
39.42 x 1e3📈 view plot
⚠️ NO THRESHOLD
1.23 x 1e3📈 view plot
⚠️ NO THRESHOLD
15.31 x 1e6
guardrail_pq::guardrail_pq::guardrail_crypto_sign_verify_mldsa65 direct_1kib:setup_sign_verify("guardrail.crypto.sign_verify.mldsa65.direct.1KiB", 1024)📈 view plot
⚠️ NO THRESHOLD
7.83 x 1e6📈 view plot
⚠️ NO THRESHOLD
5.77 x 1e6📈 view plot
⚠️ NO THRESHOLD
7.68 x 1e6📈 view plot
⚠️ NO THRESHOLD
22.64 x 1e3📈 view plot
⚠️ NO THRESHOLD
1.10 x 1e3📈 view plot
⚠️ NO THRESHOLD
7.70 x 1e6
🐰 View full continuous benchmarking report in Bencher

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant