docs: correct claims that no longer match the tree - #113
Open
ucekmez wants to merge 1 commit into
Open
Conversation
Four documentation statements that were wrong, found while auditing. **README understated the protocol's best reliability feature by ~1440×.** It advertised "HMAC-signed delivery, SSE and a 60-second replay window". The 60 seconds is the HMAC *timestamp tolerance* (§5.3); the event *replay* window is a minimum of 24 hours (§4.3). Since the sentence is positioning EEP against plain webhooks, and durable replay is the actual differentiator, the number being wrong made the pitch weaker rather than stronger. **The conformance-fixtures README described contents the directory does not have.** It claimed `subscription/` held "subscribe/unsubscribe request and response shapes"; there is no unsubscribe vector and there are no response shapes. Corrected to what is actually there. **`decouple.py` sat at the repository root.** It is a one-off de-branding pass from the more.md extraction that has already run — the first thing a new contributor saw in a root listing, and not part of any build or test. Moved to `scripts/`, given a header explaining what it was and why it is kept, and its security-contact substitution changed from `security@eep.dev` to `hello@eep.dev`, which is the address SECURITY.md and the README actually publish. **ROADMAP.md had drifted in both directions.** The pnpm workspace migration had shipped — `pnpm-workspace.yaml`, `tsconfig.base.json` and `packageManager: pnpm@9.15.0` are all present — while listed as pending v0.2 work; the residual task is narrower and is now split out on its own. The offline conformance fixtures read as unstarted when the vectors, their manifest and the release tarball all existed and only the CLI flag was missing. A stale roadmap is worse than none: it hides finished work and misrepresents what is left. Added a short note on checking the tree rather than memory when updating an item, and on splitting a partially shipped item so the remaining work stays visible. Refs: EEP audit 2026-08 findings A11, D1, D2 Signed-off-by: Ugur Cekmez <ucekmez@gmail.com>
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.
Summary
PR 21 of a stacked series — the last one. Base is #112. Not for merge without review.
Four documentation statements that were wrong.
1. The README understated the protocol's best reliability feature by ~1440×
The 60 seconds is the HMAC timestamp tolerance (§5.3). The event replay window is a minimum of 24 hours (§4.3).
The sentence is positioning EEP against plain webhooks, and durable replay is the differentiator — so getting the number wrong made the pitch weaker, not stronger.
2. The fixtures README described contents the directory does not have
There is no unsubscribe vector and there are no response shapes. Corrected to what is actually there.
3.
decouple.pysat at the repository rootA one-off de-branding pass from the more.md extraction that has already run — the first thing a new contributor sees in a root listing, and part of no build or test. Moved to
scripts/, given a header explaining what it was and why it's kept (the substitution list stays auditable), and its security-contact substitution corrected fromsecurity@eep.devtohello@eep.dev— the addressSECURITY.mdand the README actually publish.4.
ROADMAP.mdhad drifted in both directionspnpm-workspace.yaml,tsconfig.base.json,packageManager: pnpm@9.15.0,pnpm -rtest script all presentBoth are corrected, and the pnpm item is split so the residual work — consolidating to a single
pnpm-lock.yaml— is visible on its own rather than hidden inside a checkbox that looked untouched.I also added a short note on keeping the file honest: check the tree rather than memory, and split a partially shipped item so the remainder stays visible. A stale roadmap is worse than none — it hides finished work and misrepresents what is left.
Scope
Checklist
Verification
Every claim written into the roadmap was checked against the tree rather than asserted:
tests/tests/cross-impl/codegen-schema-types --checkopenapi-route-paritydecouple.pypathNotes for reviewers
I moved
decouple.pyrather than deleting it. It has served its purpose and could reasonably go, but deleting someone's tool is a call for a maintainer to make — the substitution list is the only record of what the extraction rewrote. Say the word and I'll remove it.This is the final PR in the series. The full stack is #93 → #112 → this one, one PR per audit finding, each based on the previous so the diffs stay reviewable and never conflict. GitHub retargets each to
mainas its base merges.