maniator / maniator/verticopolis

[Feature]: [P3] Render curated changelog notes as markdown in the update modal

Open
#451 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Deferred by the versioning/changelog party (2026-07-16). Do not ship without the guardrails below.

The build reads CHANGELOG.md and feeds the update modal plain text (markdown is flattened by notesForVersion in src/changelog.ts, which parses with CommonMark via marked at build time). Rendering an inline markdown subset inside the modal was considered and deferred: the update prompt is the reload-critical surface, so any markdown-to-HTML there opens an XSS lane for questionable benefit on 1 to 3 short lines.

If revisited, the constraints are:

  • Allow only an inline emphasis subset (bold/em), nothing block-level.
  • Emit lit templates, never raw HTML (no unsafeHTML).
  • No links, images, or attributes (no href means no javascript: lane).
  • Vet the added dependency size; the current parser is build-time only, so a modal renderer would be the first markdown code to ship to the browser.

Today the file can stay rich markdown for human reading while the prompt stays plain and safe, so this is a nice-to-have, not a fix.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/changelog.ts and notesForVersion, then trace how the plain-text output reaches the update modal. If revisited, define the allowed inline emphasis behavior and verify the result uses lit templates without unsafeHTML, with no links, images, or attributes; also assess the browser bundle impact of any parser dependency.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.