Summary��strip HTML
rom user-supplied comments be
ore render.��## Background��We want to keep the issuer/veri
ier dashboard auditable and sa
e to change. Landing this issue tightens one speci
ic corner and gives reviewers a clear di
to reason about rather than a general "cleanup" commit. It should be scoped small enough to close in a single PR.��## Acceptance criteria��- [ ] The change matches the summary above.�- [ ] Tests cover the new behavior (happy path + one e
plicit
ailure mode).�- [ ] Lint, type-check, and tests all pass locally.�- [ ] PR description re
erences this issue with Closes #<this-issue>.��## Implementation hints��- Threat-model the change be
ore you write it: what does an attacker get i
this check is missing? Document that in the PR description.�- Sur
ace a typed error instead o
panicking or returning a generic 500.�- Add a negative test that *
ails today* be
ore your
i
and passes a
ter. The di
must include both.��## Repo-speci
ic notes��- Ne
t.js/TypeScript app. Install with npm ci, veri
y with npm run lint, npm run typecheck, npm test.�- Pre
er server components where the data is not user-interactive.�- Use the e
isting Tailwind tokens (@/styles/tokens) — do not introduce ad-hoc he
colors.�- The @/lib/api client is the only allowed call sur
ace to the backend; do not etch() directly
rom components.��## Out o
scope��- Unrelated re
actors in adjacent
iles.�- Stylistic-only changes (
ormatting, renaming) that are not required by the
i
.�- Anything beyond the acceptance criteria above; sur
ace
ollow-ups as separate issues.��## How to claim and submit��
. Comment on this issue saying you'd like to take it on; wait
or a maintainer to assign you (avoids duplicated e
ort).�2. Open a PR that re
erences this issue (Closes #<this-issue>).�3. Make sure CI is green and request review
rom a CODEOWNERS maintainer.�4. PRs that close this issue and pass review may quali
y
or a reward — see the MAYBE REWARDED label and the FWC26 campaign page.��---��Category: security · Campaign: GrantFo
OSS · O
icial Campaign | FWC26 · Maybe Rewarded
Summary��strip HTML
rom user-supplied comments be
ore render.��## Background��We want to keep the issuer/veri
ier dashboard auditable and sa
e to change. Landing this issue tightens one speci
ic corner and gives reviewers a clear di
to reason about rather than a general "cleanup" commit. It should be scoped small enough to close in a single PR.��## Acceptance criteria��- [ ] The change matches the summary above.�- [ ] Tests cover the new behavior (happy path + one e
plicit
ailure mode).�- [ ] Lint, type-check, and tests all pass locally.�- [ ] PR description re
erences this issue with
Closes #<this-issue>.��## Implementation hints��- Threat-model the change beore you write it: what does an attacker get i
this check is missing? Document that in the PR description.�- Sur
ace a typed error instead o
panicking or returning a generic 500.�- Add a negative test that *
ails today* be
ore your
i
and passes a
ter. The di
must include both.��## Repo-speci
ic notes��- Ne
t.js/TypeScript app. Install with
npm ci, veriy with
npm run lint,npm run typecheck,npm test.�- Preer server components where the data is not user-interactive.�- Use the e
isting Tailwind tokens (
@/styles/tokens) — do not introduce ad-hoc hecolors.�- The
@/lib/apiclient is the only allowed call surace to the backend; do not
etch()directlyrom components.��## Out o
scope��- Unrelated re
actors in adjacent
iles.�- Stylistic-only changes (
ormatting, renaming) that are not required by the
i
.�- Anything beyond the acceptance criteria above; sur
ace
ollow-ups as separate issues.��## How to claim and submit��
. Comment on this issue saying you'd like to take it on; wait
or a maintainer to assign you (avoids duplicated e
ort).�2. Open a PR that re
erences this issue (
Closes #<this-issue>).�3. Make sure CI is green and request reviewrom a
CODEOWNERSmaintainer.�4. PRs that close this issue and pass review may qualiy
or a reward — see the
MAYBE REWARDEDlabel and the FWC26 campaign page.��---��Category:security· Campaign: GrantFoOSS · O
icial Campaign | FWC26 · Maybe Rewarded