Skip to content

docs(roadmap): close it out — every item shipped or a stated non-goal - #30

Merged
jlc488 merged 1 commit into
mainfrom
docs/roadmap-p3-closed
Aug 9, 2026
Merged

docs(roadmap): close it out — every item shipped or a stated non-goal#30
jlc488 merged 1 commit into
mainfrom
docs/roadmap-p3-closed

Conversation

@jlc488

@jlc488 jlc488 commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

버전 범프 없음. 문서만 바뀝니다.

로드맵을 이틀 전에 "아직 아무도 정하지 않은 것들의 목록" 으로 썼습니다. 이제 전부 정해졌는데, 파일이 여전히 열린 질문을 서술하고 있으면 JS-012가 "없느니만 못하다"고 한 그 낡은 계획 문서가 됩니다.

바뀐 것

Next 가 대기열이 아니라 결과 표를 담습니다:

항목 결과
P1 — 예외 없는 판정, maxBytes 0.6.0
P2 — singleHostPolicy, Hono 미들웨어 0.7.0
P2 — 문서 사이트 이중 언어 영어 /, 한국어 /ko/
P2 — 런타임별 CI 잡 Node + Bun + Deno 매트릭스
P3 — 정합성 감사 1회차, 양쪽 4건 수정 / 1건 미해결
P3 — JS 데모 ssrf-guard-js-workers-demo
P3 — HTTP 클라이언트 어댑터 의도적으로 안 함

이름이 붙은 남은 작업 하나(OkHttp 리다이렉트 홉)와, 그걸 파괴적 변경을 이미 실은 릴리스에 얹지 않는 이유를 적었습니다. 그리고 정직하게: 잔여 위험이 들리는 것보다 좁습니다 — 호스트 허용 목록과 사설 IP 필터는 홉마다 여전히 작동하므로, 빠져나가는 건 허용된 같은 호스트의 다른 포트·스킴입니다.

지운 것

CI 매트릭스 후보"CI는 아직 Node 22 단일 잡" 이라고 주장하는데, 런타임 매트릭스가 들어오면서 사실이 아니게 됐습니다. 두 절 위의 표와 모순되는 후보였습니다.

JS 데모 후보ssrf-guard-js-workers-demo로 출시됐습니다.

후보에는 이제 의도적 보류인 HTTP 클라이언트 어댑터 하나만 남습니다. 같은 질문을 매번 처음부터 다시 하지 않도록 적어둡니다. 서문도 "제안을 기다린다"가 아니라 그렇게 말합니다.

추가한 것

날짜만 있고 버전이 없는 항목 3건을 Shipped에 넣었습니다 — 이중 언어 사이트, 정합성 감사, 데모. 버전 번호 없이 나간 일이야말로 Shipped 표가 잊어버리는 것이라서요.

그리고 AskLinq가 createHonoUrlGuard를 안 쓰는 건 갭이 아니라 발견이라고 적었습니다 — 그 제품이 받는 모든 URL은 곧 거기에 잠가야 할 URL이라, 미들웨어가 강제할 정적 허용 목록이 없습니다.

검증

pnpm verify 그린 (223 테스트 / 15파일).

The roadmap was written two days ago as a list of things nobody had
decided yet. All of it is now decided, and leaving the file describing
open questions that are closed makes it the kind of stale planning doc
JS-012 said was worse than none.

Next now carries a table of outcomes instead of a queue, plus the one
named piece of work left — OkHttp's redirect hops, in parity.md — with
the reason it is not stacked onto a release that already carries a
breaking change, and an honest note that its residual risk is narrower
than it sounds: the host allowlist and private-IP filter still hold per
hop, so what gets through is the same allowlisted host on another port
or scheme.

Removed the CI-matrix candidate. It claimed "CI is still a single Node 22
job", which stopped being true when the runtime matrix landed — a
candidate contradicting the table two sections above it.

Removed the JS-demo candidate; it shipped as ssrf-guard-js-workers-demo.

Candidates now holds exactly one entry, the deliberately-deferred HTTP
client adapters, kept written down so the question is not re-asked from
scratch. The preamble says that rather than still promising proposals.

Also recorded the three dated, release-less entries in Shipped — the
bilingual site, the parity audit and the demo — since work that ships
without a version number is exactly what a Shipped table forgets.

Also noted that AskLinq's not adopting createHonoUrlGuard is a finding,
not a gap: every URL it accepts is one it must then lock to, so there is
no static allowlist for a middleware to enforce.
@jlc488
jlc488 merged commit 10bd8fd into main Aug 9, 2026
4 checks passed
@jlc488
jlc488 deleted the docs/roadmap-p3-closed branch August 9, 2026 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant