Skip to content

docs(discord): install canonical 42-row parity ledger - #90321

Open
andrexibiza wants to merge 6 commits into
NousResearch:mainfrom
andrexibiza:campaign/discord-parity-ledger
Open

docs(discord): install canonical 42-row parity ledger#90321
andrexibiza wants to merge 6 commits into
NousResearch:mainfrom
andrexibiza:campaign/discord-parity-ledger

Conversation

@andrexibiza

@andrexibiza andrexibiza commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Installs one executable, current-main authority for the Discord Feature Parity & Alignment campaign.

This does not convert packet files or green focused tests into false completion. It reconciles the approved 42-row M/T/I/V/A/W/R contract against live main, names the current publication owner for every surviving candidate, records closed packet-era branches as historical evidence, and makes semantic drift test-failing.

Corrected current-state receipt

Snapshot: upstream 7b25941b0ecd1a2d367edc7b6ef89a0958c10822 (2026-08-19T22:06:57Z); publication state rechecked 2026-08-19T22:46:10Z.

  • Discord package on main: six files.
  • plugins/platforms/discord/adapter.py: 475,891 bytes.
  • tools/discord_api/: absent on main.
  • candidate_unwired: 1 — M4.
  • candidate_blocked: 10 — M3, I4, I5, V2, V5, V6, A2, A5, W2, R3.
  • gap: 31.
  • candidate_open: 0.
  • on_main_unverified: 0.
  • released: 0.

The earlier 19/16/7 tally was wrong because it treated closed packet-era PRs as live candidates. The corrected ledger records those bytes as provenance-bearing historical evidence, not current implementation authority.

Root classes closed

1. Semantic authority drift

The approved spec and later packet no longer agreed on W-row meanings. This ledger restores and digest-locks:

  • W1 — Discord-native webhook operations — rejected/not in contract;
  • W2 — generic Hermes webhook → Discord delivery — pair-gap;
  • W3 — multiplex profile routing;
  • W4 — proactive/home/cron delivery;
  • W5 — OAuth2 authorization-code flow — paired-deferred/rejected.

A speculative tools/discord_api/webhooks.py cannot masquerade as W1 completion.

2. Publication-state truth

3. Forbidden-surface laundering

The generic validator from #90307 rejected the first corrected ledger because I4 and R3 listed candidate bytes in forbidden adapter.py / gateway/run.py surfaces. The final ledger records those paths as blocked evidence rather than accepted implementation ownership. This is the intended fail-closed behavior.

Files

  • docs/architecture/feature-parity/discord.json
    • machine-readable 42-row ledger;
    • digest-locked canonical identity;
    • exact current-main snapshot and live/closed publication topology;
    • explicit gap, blocker, and wiring classes.
  • docs/architecture/feature-parity/discord-current-state.md
    • human-readable reconciliation and complete row matrix.
  • tests/conformance/test_discord_feature_parity_ledger.py
    • exact row cardinality/order;
    • W-lane semantic lock;
    • rejected-webhook prohibition;
    • main/packet non-completion guard;
    • corrected 1/10/31 state receipt;
    • closed-authority demotion;
    • M3 supersession and I4/R3 live-successor checks.

Verification at head 01618eb1fb6e0fd345f185127eea83d0fcd66e77

python -m pytest -q tests/conformance/test_discord_feature_parity_ledger.py
10 passed in 0.04s

python scripts/ci/validate_feature_parity_ledger.py \
  docs/architecture/feature-parity/discord.json
VALID

python -m py_compile tests/conformance/test_discord_feature_parity_ledger.py
clean

contract digest
aaac33ca224d550ab1f81262e6e0551a586bd5c8d2961a396257295906c0f9db

The stacked conformance test imports the generic validator from #90307. After #90307 lands, this PR can be rebased and its diff collapses to the Discord ledger/report/test only.

Depends on #90307
Part of #79564
Part of #78647

Turn Feature Parity & Alignment campaigns into a machine-validated publication contract. Canonical row identity is digest-locked; artifact-only states, duplicate authority, unwired candidates, forbidden god-file growth, and receipt-free release claims fail closed.

Supersedes NousResearch#79898 while preserving its campaign doctrine and extending it from prose into executable enforcement.

Part of NousResearch#79564
Part of NousResearch#78647

Signed-off-by: Andrex Ibiza, MBA <andrexibiza@gmail.com>
Reconcile Discord Feature Parity & Alignment against current main and the approved M/T/I/V/A/W/R contract. Record every candidate as unwired, blocked, or absent instead of treating packet code as delivery; restore the canonical W-lane meanings; choose NousResearch#89405 as M3 authority and NousResearch#86419 as superseded; and add Discord-specific semantic conformance tests.

Depends on NousResearch#90307
Part of NousResearch#79564
Part of NousResearch#78647

Signed-off-by: Andrex Ibiza, MBA <andrexibiza@gmail.com>
Signed-off-by: Andrex Ibiza, MBA <andrexibiza@gmail.com>

Copy link
Copy Markdown
Contributor Author

Topology amendment receipt:

The capability-state counts and canonical contract digest are unchanged: 19 unwired, 16 blocked, 7 gap, 0 open/merged/released; digest aaac33ca224d550ab1f81262e6e0551a586bd5c8d2961a396257295906c0f9db.

@alt-glitch alt-glitch added type/docs Documentation improvements platform/discord Discord bot adapter P3 Low — cosmetic, nice to have sweeper:risk-automation Sweeper risk: may affect CI, automerge, label sync, or maintainer automation labels Aug 19, 2026
Reclassify closed packet-era PRs as historical evidence, promote NousResearch#81388 and NousResearch#87700 as current successors, and correct current state to 1 unwired / 10 blocked / 31 gap. Preserve the canonical 42-row contract digest and keep forbidden god-file candidates blocked rather than laundering them into accepted implementation paths.

Depends on NousResearch#90307
Part of NousResearch#79564
Part of NousResearch#78647

Signed-off-by: Andrex Ibiza, MBA <andrexibiza@gmail.com>

Copy link
Copy Markdown
Contributor Author

Exact published-byte verification for head 01618eb1fb6e0fd345f185127eea83d0fcd66e77:

git hash-object docs/architecture/feature-parity/discord.json
b9903d74e853d7411395a9eb17b47418d0c1f06c

git hash-object docs/architecture/feature-parity/discord-current-state.md
adb5487e7292c26c56bca83177ef87d4e6513eed

git hash-object tests/conformance/test_discord_feature_parity_ledger.py
9bd354f6492447bb1619333831945a7db499b66b

python scripts/ci/validate_feature_parity_ledger.py docs/architecture/feature-parity/discord.json
VALID

python -m pytest -q tests/conformance/test_discord_feature_parity_ledger.py
10 passed in 0.03s

python -m py_compile tests/conformance/test_discord_feature_parity_ledger.py
clean

Those three local Git blob hashes exactly match the blobs installed in commit 01618eb1fb6e0fd345f185127eea83d0fcd66e77. The corrected current-state receipt is therefore 1 unwired / 10 blocked / 31 gap, with 0 candidate-open / on-main / released rows.

andrexibiza commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Hosted exact-head CI triage for 01618eb1fb6e0fd345f185127eea83d0fcd66e77:

  • CI 32311089169 is red only because the generic e2e lane failed tests/e2e/test_platform_commands.py::TestSlashCommands::test_plaintext_restart_gateway_in_group_stays_plain_text[telegram]: the mocked send was expected once and observed zero calls.
  • That failure is outside this PR's changed surface. docs(discord): install canonical 42-row parity ledger #90321 changes only the Discord parity ledger/report, generic ledger validator/skill contract, and their conformance tests; it does not change Telegram, platform command dispatch, restart handling, or gateway runtime code.
  • The PR's own published-byte validator/conformance receipts remain green; hosted Docker 32311088614 and Nix 32311088613 are green, as are the CI docs/lint/OS-specific/supply-chain lanes exposed by the run.

I am not changing Discord-ledger code to accommodate an unrelated Telegram assertion. The stack already declares a real dependency on #90307; that dependency is exact-head green at b8515bb85c57c48f0d414bfb23c2cacffc6e5d6d, but has not been merged. The correct next source-of-truth transition for #90321 is therefore the planned rebase/collapse after #90307 lands, followed by exact-head execution on that resulting tree.

Closure-sweep mutation receipt: I attempted a targeted rerun of only failed job 96254097197 rather than restarting the successful matrix. GitHub rejected the Actions write with 403 Resource not accessible by integration, so the remaining rerun/rebase gate is an external permission/dependency boundary, not an unattempted repository action.

Copy link
Copy Markdown
Contributor Author

Live authority revalidation — 2026-08-20

Rechecked the ledger against every currently listed open authority PR rather than packet history. The 1 candidate_unwired / 10 candidate_blocked / 31 gap classification remains correct; no ledger JSON state change is warranted.

Exact findings

External contributors’ PR bodies were left untouched. The canonical publication truth remains this ledger plus #90307’s validator, not historical packet descriptions or focused test counts.

@andrexibiza andrexibiza left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Live reconciliation against the canonical ledger: #86429 (A2) and #86432 (A5) remain candidate_blocked, and #86324 (M4) remains candidate_unwired. All three are now ready-for-review; that review-state change does not promote their publication state or merge authority. A2/A5 still lack owner-qualified guild/channel/requester mutation authority; M4 still lacks a production send/ingress effect path. M3 remains owned by #89405; closed #86419 remains provenance only. #90321 continues to consume #90307 as the generic validation authority, and packet history does not override these live ledger classifications.

Republish the unchanged source tree after CI run 32311089169 failed only tests/e2e/test_platform_commands.py::TestSlashCommands::test_plaintext_restart_gateway_in_group_stays_plain_text[telegram], outside this documentation/conformance diff.

Signed-off-by: Andrex Ibiza, MBA <andrexibiza@gmail.com>
Signed-off-by: Axl Ibiza <andrexibiza@gmail.com>

Copy link
Copy Markdown
Contributor Author

Current-head hosted verification receipt

Rechecked the live campaign-ledger head fd1ee31007c5269d402c5251ad58c8b033bcea69 rather than relying on the older head named in the PR body.

  • CI 32405855933success
  • Docker Build, Test, and Publish 32405855009success
  • Nix flake check 32405854875success

The Discord ledger’s current published merge object is therefore exact-head green. Its dependency on #90307 remains a topology/landing dependency, not an unverified-CI residue.

Copy link
Copy Markdown
Contributor Author

Exact-object metadata reconciliation

This PR's live head is fd1ee31007c5269d402c5251ad58c8b033bcea69; the verification block in the body still names the earlier 01618eb1... object. The later head has its own successful CI/Docker/Nix receipts, but those should be recorded as a new exact-object block rather than inherited from the prior head.

#91913 now makes this a repository-level rule: publication evidence never transfers across object versions, and human status must remain derived from or checked against committed machine-readable state.

Architecture contract: #91913
Contract head: 170a3a0e67034abd7d6a2c69a16c292b4781720f.

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

Labels

P3 Low — cosmetic, nice to have platform/discord Discord bot adapter sweeper:risk-automation Sweeper risk: may affect CI, automerge, label sync, or maintainer automation type/docs Documentation improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants