Skip to content

hotfix(circle-sunset): re-hide circle entry on production (v6.11.2)#5977

Merged
mashbean merged 5 commits into
masterfrom
hotfix/circle-prod
Jun 19, 2026
Merged

hotfix(circle-sunset): re-hide circle entry on production (v6.11.2)#5977
mashbean merged 5 commits into
masterfrom
hotfix/circle-prod

Conversation

@mashbean

Copy link
Copy Markdown
Contributor

🔥 Production hotfix — 關閉線上圍爐入口

為什麼需要這個 PR

線上 matters.town 的圍爐(Circle)入口仍開著。先前 release #5974(develop→master)雖含圍爐修復,但 production EB 部署掛在 Generate Types (production):develop 帶的 quote-wall 前端碼依賴 PutQuoteInput 等 server 型別,而 production server 尚未部署(matters-server develop 領先 master 48 commits)。結果 production 部署中止、仍是舊 build、圍爐入口仍開。

這個 hotfix 做什麼(外科手術式,不動後端)

  1. Revert Release v6.11.2 #5974:移除 quote-wall / campaign-discussion 前端碼,讓 gen:type:prod(production schema)不再缺型別 → production 部署能過。
  2. 重新加圍爐修復:關閉個人頁 / 側欄 CircleWidget 入口(保留 CarbonBasedBadge)。
  3. CommentArgs.type 加寬 campaignDiscussion:required build check(push 事件走 staging schema)需要;對 staging(含)與 production(子集)兩邊都安全。
  4. 版號 bump 6.11.2:修先前 Create Release 重複 v6.11.1 tag 的失敗。
  5. Pin 兩個與本案無關的檔(fediverse 設定、test helper)回現行 master,避免 revert 連帶的格式漂移。

本地驗證(雙 schema)

  • gen:type(staging) + tsc --noEmit:零錯誤
  • gen:type:prod(production) + tsc --noEmit:零錯誤
  • format:check / ESLint / stylelint:乾淨

⚠️ 後續

quote-wall / campaign-discussion 仍在 develop,要正式上 production 需先發 matters-server(提供 PutQuoteInputcampaignDiscussion schema)再發 matters-web,屆時此 revert 需一併處理(revert-the-revert 或重新 merge)。

🤖 Generated with Claude Code

mashbean and others added 5 commits June 17, 2026 15:11
This reverts commit d823aed, reversing
changes made to ee9f788.
The circle widget entry on both the user profile and aside user profile
was accidentally re-enabled by 4acdd20 ("Display carbon based badge").
That Codex-generated commit rewrote these two files from a pre-sunset
view and un-commented the CircleWidget import / circles var / render,
reopening the circle (圍爐) entrance that the sunset series (ed1108c /
814c776) had intentionally hidden.

Re-apply the sunset comments to all three spots in both files while
keeping the CarbonBasedBadge additions intact. Present on both develop
and master, so this also needs to reach master.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The required `build` check generates GraphQL types against the staging schema
(server.matters.icu), whose CommentType already exposes `campaignDiscussion`.
The manually-typed CommentArgs.type union here only listed four values, so
every comment component failed tsc with "CommentType is not assignable".

Widen the union to include `campaignDiscussion`. This is schema-agnostic and
production-safe: staging fragments carrying the value are now assignable, while
the production schema (which omits it) stays a subset. No switch case is added
— full campaignDiscussion routing ships with the develop release; this hotfix
only needs the type to compile so the circle-sunset fix can deploy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The #5974 revert reverted these two unrelated files (fediverse UI and a test
helper) back to their pre-release state, which introduced prettier drift and
neither relates to the quote-wall/campaign-discussion code being removed. Pin
them to current master so this hotfix does not touch them.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mashbean mashbean requested a review from a team as a code owner June 17, 2026 07:26
@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
matters-web Ready Ready Preview Jun 17, 2026 7:31am

Request Review

@mashbean mashbean merged commit 5902495 into master Jun 19, 2026
3 of 5 checks passed
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