Architecture & design decisions (v0) + open questions #1
thorwhalen
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This is the living design-decision record for
heed. Detail lives inmisc/docs/design.md;the evidence behind it lives in
misc/docs/research-report.md.This thread is for why; concrete work is tracked in issues.
What heed is
A public, no-install, embeddable way for an ordinary visitor of a deployed web app
to report a bug or request a feature — context gathered automatically — routed to a
backend the maintainer owns. It is the inverse of developer-side tools (Chrome DevTools
MCP, Jam,
ov): those serve the maintainer; heed serves the maintainer's users.Decisions (ADR-lite)
Reportcontract. A framework-agnostic widget and amountable Python backend, coupled only by a Pydantic
Report(SSOT inbase.py).<dialog>.One embed works in React, plain HTML, and SSR.
<dialog>because Radix/focus-traplibs break inside Shadow DOM. A thin React wrapper is convenience, not a second impl.
enlaceimport at load. Integration is
heed[enlace]and mounts viainclude_router(not.mount()), injecting auth viaDependssoenlace_authbinds identity when present.GitHubIssuesSinkis the v1 default;Discussions/board/email/Slack/DB are drop-in adapters. The dispatcher never branches
on sink type.
are opt-in with mandatory PII masking and a consent affordance (ePrivacy Art. 5(3)
generally requires consent to capture replay from a stranger's device).
limiting + payload caps + a server-side origin/repo allowlist + a moderation queue.
No frontend secret can authenticate it; the browser never names the target repo.
GitHub API to attach an image to an issue — store the screenshot and embed its URL
(commit-to-branch /
dolblob / Release asset); base64 data-URIs do not render.boundary markers on user text; the queue is exposed to Claude Code as MCP tools via
py2mcp, sharing the same core functions as the HTTP router (SSOT).FastAPI/
dol. Fork the MIT@fasterfixes/core+/mcp. Clean-room anything copyleft(Fider's data model, etc.) from public APIs.
Open questions (help wanted)
enlace_auth; the abuse↔friction trade.requests to GitHub Discussions and treat that as the board?
Weigh in below. When a question resolves, it becomes an issue.
Beta Was this translation helpful? Give feedback.
All reactions