Skip to content

docs(#585): amend ADR-0005 decision to Accepted; open #627 for the meta-line gap - #628

Merged
BorisTyshkevich merged 1 commit into
mainfrom
docs/585-adr-0005-methodology-amendment
Aug 6, 2026
Merged

docs(#585): amend ADR-0005 decision to Accepted; open #627 for the meta-line gap#628
BorisTyshkevich merged 1 commit into
mainfrom
docs/585-adr-0005-methodology-amendment

Conversation

@BorisTyshkevich

Copy link
Copy Markdown
Collaborator

Summary

  • Amends ADR-0005's decision from Rejected (2026-08-06) to Accepted (2026-08-07), via an explicit, dated decision-methodology amendment rather than a re-interpretation of the same evidence.
  • Two of the original ten hard gates are reclassified:
    • supported-server matrix now gates on the two current-generation ClickHouse rows only. Both proposed-oldest (24.8.x) rows still fail their live suite — JSONEachRowWithProgress/JSONStringsEachRowWithProgress never emit a {"meta":[...]} line on 24.8 (added only by ClickHouse GitHub PR #74181) — but identically for the current transport and the @clickhouse/client-web candidate, so it isn't evidence against the candidate specifically. Opened Query results silently render empty on ClickHouse servers predating the JSONEachRowWithProgress meta-line change (≤24.8) #627 to track fixing this general SQL Browser defect (src/core/stream.ts's applyStreamLine() has no meta-less fallback), independent of this ADR's outcome.
    • net production-code deletion is demoted from a hard pass/fail gate to a measured metric (still -154 physical LOC, unchanged) — LOC delta alone is a narrow proxy for maintenance cost and can't see a library absorbing ClickHouse protocol-format churn/security fixes upstream as a real maintenance win even at flat or negative LOC.
  • computeGates()/deriveDecision()/renderDecisionTableMd() in tests/spike/clickhouse-client/run-matrix.mjs are amended and exported; a new recompute-decision.mjs re-derives results.json's gates/decision and regenerates decision-table.md from the exact same already-collected facts — no live Docker/browser matrix re-run, since nothing underlying changed, only the classification rule.
  • docs/ADR-0005-clickhouse-web-client.md, .wiki/Decisions-and-Roadmap.md, README.md, and CHANGELOG.md are reconciled to the amended decision. The original Rejected reasoning is preserved as history in a new "Decision-methodology amendment addendum (2026-08-07)" section rather than rewritten away.
  • This authorizes ADR-0005: adopt @clickhouse/client-web behind the SQL Browser transport adapter #585 Phase 2 (production official-client implementation) and Phase 3 (production cutover) to proceed. No src/** production code changed; src/net/ch-client.ts remains authoritative until cutover.

Test plan

  • npm run test:client-spike — 116/116 passing (6 new tests added for computeGates/deriveDecision, including a case proving a genuine current-generation-row regression still fails the gate)
  • npm run check:types — passes
  • npm run check:client-spike:evidence — reports the same 92 pre-existing findings as the committed baseline (verified by diff against origin/main's evidence), all pre-existing known-Query results silently render empty on ClickHouse servers predating the JSONEachRowWithProgress meta-line change (≤24.8) #627 completeness findings on the two 24.8 rows; zero findings about gate/decision-table/ADR-wiki consistency
  • Reviewer: confirm the two gate reclassifications in "Decision-methodology amendment addendum" are the right call before merging — this flips a real architecture decision (unblocks Phase 2/3) via a tooling/policy change, not a code change

🤖 Generated with Claude Code

https://claude.ai/code/session_01LwFPT465eDJqYcRa8HGNLz

…ta-line gap

The original Phase 0 evidence run's mechanical rule (any required hard gate
failing -> Rejected) didn't distinguish a candidate-specific regression from
a shared, pre-existing defect. Two gates get reclassified:

- supported-server matrix now gates on current-generation rows only. The
  two proposed-oldest (24.8.x) rows fail identically for the current
  transport and the @clickhouse/client-web candidate (JSONEachRowWithProgress
  never emits a meta line on 24.8, predating ClickHouse GitHub PR #74181) -
  not evidence against the candidate, tracked separately as #627.
- net production-code deletion is demoted from a hard pass/fail gate to a
  measured metric (still -154 physical LOC): LOC delta alone is a narrow
  proxy for maintenance cost and can't see a library absorbing protocol
  churn/security fixes upstream as a real win even at flat or negative LOC.

computeGates()/deriveDecision()/renderDecisionTableMd() in run-matrix.mjs
are amended and exported; a new recompute-decision.mjs re-derives
results.json's gates/decision and regenerates decision-table.md from the
same already-collected facts (no live Docker/browser matrix re-run, since
nothing underlying changed). ADR-0005, the wiki, README, and CHANGELOG are
reconciled to the amended Accepted decision, with the original Rejected
reasoning preserved as history in a new addendum section.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LwFPT465eDJqYcRa8HGNLz
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