Skip to content

docs(releases): v17 页补齐 rc.0 → rc.1 窗口(元数据/协议变更 + 平台功能) - #4418

Merged
os-zhuang merged 6 commits into
mainfrom
claude/rc1-release-changelog-pghvbz
Jul 31, 2026
Merged

docs(releases): v17 页补齐 rc.0 → rc.1 窗口(元数据/协议变更 + 平台功能)#4418
os-zhuang merged 6 commits into
mainfrom
claude/rc1-release-changelog-pghvbz

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

背景

计划发布 17.0.0-rc.1。v17 发布页停在 rc.0 切点上,而自那以后 main 上已积压 334 个 changeset(其中 40 个 major 级),外加 objectui pin 前进五次(4a4829d0ef39 → 7d9734d5e321,79 个提交,已发布为 objectui 17.1.0)。这些都没有进入 docs/releases-maintenance.md 规定的 layer-3 策展页 —— 而 major 版本的这层是强制的,因为迁移指引无法生成。

改了什么

content/docs/releases/v17.mdx 新增 Landed since 17.0.0-rc.0 章节,按任务要求的两类读者组织:

1. 元数据应用开发者关注的元数据/协议变更

  • /actions 路由改说 HTTP:单层包裹的 200、业务拒绝 400(带 details.fields)、崩溃 500;按声明 type 分派,flow action 以调用者身份执行(runAs: 'user' 终于按调用者判 RLS)
  • 列表查询「要么生效要么报错」:解析不了的 filter 从「返回整张表的干净 200」变成 400 INVALID_FILTER;sort/select/expand/groupBy/aggregations/searchFields 里的未知字段一律 400
  • 五个 RPC 别名收敛到一次 fold,并覆盖每个 engine 方法(此前 update({filter, multi:true}) 会改写整表、delete 会清空表);query.having 真正生效
  • 流程节点 config 端到端强制(执行前 parse、registerFlow 拒绝未声明键、CEL 槽校验、ADR-0031 region 全覆盖),以及若干别名毕业进 ADR-0087 转换层
  • 存量元数据在每个读取缝重放转换链;Studio 表单与 schema 对齐(此前 Object→Capabilities 七个开关全部存不进去)
  • 视图过滤算子补齐、时间语义(存储形态/整日上界/type-blind 比较)整条线、ADR-0111 共享授权

2. 系统管理员关注的平台功能升级

  • 缺失能力诚实作答:501 直接点名要装的包;伪造 session 的 auth mock、绕过 RLS 的 analytics shim、dev 的 allow-all 安全桩全部删除
  • HonoServerPlugin 回归纯传输适配器;memory driver 恢复 opt-in 持久化
  • os migrate 兑现承诺:确认前零写入、占用检测(fd 探针)、就地改写工作量带行数进 plan
  • 启动可观测性、平台对象基础设施(sys_migration / sys_secret)、cron job 终于真的触发、run summary 的 unmeasured 语义
  • 本窗口关闭的四处 fail-open 单列一节(项目成员闸门、analytics shim、dev 桩、导入用户字段强转)

另有 Console 小节(以 ADR-0110 lockstep 那条发布关键项开头:rc.0 的 pin 会让每个 target-bound script action 从已发布 Console 打出 404),升级清单新增 13 条动作项,References 补齐本窗口的 ADR 与 PR。

取舍说明

rc.0 之后最大的几批落地(ADR-0110 / ADR-0104 D2 / ADR-0113 / ADR-0114、#4001 严格化后续、七项 protocol-17 退役、#4212 家族、#3896 清扫)此前已随各自 PR 就地写进上方章节。新章节点名并指向它们,而不是重复一遍,再覆盖窗口内其余内容 —— 否则同一页会出现两份互相漂移的叙述。

验证

  • node scripts/check-release-notes.mjs 通过
  • 新增内容中不存在会被 MDX 当作 JSX/表达式解析的裸 < / {(脚本核对,代码 span 已排除)
  • 已合入 origin/main(含期间新落的四个 changeset,其中三个消费者可见的已写入页面;纯 CI 的 driver-conformance-gate 有意略去)

仅文档改动,不发布任何包。


Generated by Claude Code

claude added 4 commits July 31, 2026 13:19
The v17 release page stopped at the rc.0 cut. 334 changesets have landed on
main since (40 major-class), plus five objectui pin moves, and none of it was
in the layer-3 curated page the releases-maintenance playbook makes mandatory
for a major.

Adds a "Landed since 17.0.0-rc.0" section written for the two audiences the
release actually strands:

1. **Metadata-app developers** — what changed in the metadata they author and
   the protocol they call: the actions route's HTTP contract, list queries
   that apply-or-fail, the one alias fold across every engine method,
   `query.having` becoming real, flow-node config enforcement and the ADR-0087
   alias graduations, blank hook targets, stored-metadata conversion replay,
   Studio forms that saved nothing, view-filter operator parity, the temporal
   storage/bounds campaign, and ADR-0111 sharing authority.

2. **System administrators** — what changes about operating the platform:
   honest 501s naming the package to install (the fabricated-session auth mock
   and the RLS-free analytics shim are deleted), `HonoServerPlugin` reduced to
   a transport adapter, memory-driver persistence back to opt-in, `os migrate`
   writing nothing before confirmation and refusing a busy database, boot-log
   visibility, platform-objects infrastructure, cron jobs that finally fire,
   and the four fail-opens closed this window.

The largest post-rc.0 landings (ADR-0110/0104-D2/0113/0114, the #4001
strictness clicks, the seven protocol-17 retirements, the #4212 family, the
#3896 sweep) are already documented in place in the sections above — this
section names them and points there rather than duplicating, then covers the
rest of the window.

Also extends the upgrade checklist with the new consumer-facing actions and
the References list with this window's ADRs and PRs.

Console (objectui) half follows in the next commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MevuZ96T3E9yivS8QvghcR
The five objectui pin moves since rc.0 (`4a4829d0ef39 → 7d9734d5e321`, 79
commits, released as objectui 17.1.0) had no entry on the curated page. Sourced
from the five `console-*` changesets `scripts/bump-objectui.sh` writes on every
bump.

Leads with the release-critical one: the rc.0 pin predates the ADR-0110 D1
client fix, so the Console it builds still posts `action.target` to the actions
route — against a v17 server, which resolves the declaration by `name` and
refuses an unresolvable one, every target-bound script action would 404 from
the shipped Console. Then the rest grouped by what a user of the Console
actually feels: action feedback that stops lying, filters/sorting/export
agreeing with the server, safer edits (If-Match + 409 surfacing), per-record
bulk actions, approvals and notification surfaces, the Studio designers, types
that stop forking the spec, and the resilience fixes.

Also scopes the existing Console section to the rc.0 window it documents, so
`4a4829d0ef39` no longer reads as the shipping pin.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MevuZ96T3E9yivS8QvghcR
main advanced while this branch was being written. Three of the four new
changesets are consumer-facing and belong on the page:

- #4363's second half — the background walks seek instead of counting. The
  page already carried the single-read half; the walk half is the one with
  teeth, because `rebuildApproverIndex` deleted index rows for requests its
  offset-paged scan skipped, and `scanValueShapes` could open the value-shape
  migration gate on evidence it never fully read. Both land beside the paged-
  read entry they complete.
- `SqlDriver.findOne(object, id)` removal + `bypassTenantAudit` becoming a
  declared `DriverOptions` member, with the limit the declaration states.
- react page props joining the reference-integrity suite, so `os lint` /
  `os compile` stop passing metadata `os validate` rejects — noted where the
  authoring lints are described, with the CI consequence called out.

The fourth (`driver-conformance-gate`) is a CI gate that releases nothing
consumer-visible and is deliberately left off.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MevuZ96T3E9yivS8QvghcR
@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Jul 31, 2026 1:26pm

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation size/l labels Jul 31, 2026
claude added 2 commits July 31, 2026 13:25
…ixes the bump missed

Two things the `Check Changeset` gate and a verification pass turned up.

**This PR declares itself.** An empty-frontmatter changeset — the sanctioned
"releases nothing" declaration the gate documents — for the docs-only v17 page
work.

**The Console window was under-enumerated, and the page would have inherited
that.** Cross-checking the five `console-*` changesets against objectui's own
history found `console-bebaebd39ace.md` covers only the tail of its range: 94
first-parent commits, 40 enumerated, oldest entry #3026. The other four ranges
reconcile exactly. Everything that merged earlier inside that one range is in
neither the release history nor the curated page — the same failure
`console-c6cfdf1288b6-backfill.md` records, now for the second time.

Adds the backfill (patch; all 27 are `fix`, none `feat`, so the bump script's
own typing rule applies) declaring no SHA move. Several are data-loss fixes an
upgrading Console user feels on contact: a tabbed modal or split form silently
dropping the values of every pane but the active one, a `defaultValues` change
discarding what the user was typing, no unload guard on a dirty modal, and a
flow or action that failed under HTTP 200 still reporting success.

Also fixes the `check:role-word` failure this branch introduced — the ADR-0090
D3 vocabulary is permission sets and positions, so the upgrade-checklist entry
now says which permission sets carry `manage_sharing` rather than "roles".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MevuZ96T3E9yivS8QvghcR
The backfill changeset records the 27 unenumerated objectui fixes in
`@objectstack/console`'s changelog (the detail layer). The curated page is the
layer that has to tell an upgrading user what they will feel, so the
user-visible half lands here too rather than being left to a changelog nobody
reads before upgrading.

Two additions: a "forms stop losing what you typed" group — the tabbed-modal
and split-form value loss, `defaultValues` discarding in-progress input, the
missing unload guard, the stale record after a `recordId` swap — and a
"spec values render instead of failing three different ways" group covering
the three spec-parity tiers, the FilterBuilder operator table, the chart
series/category fixes, the empty-KPI analytics case, legacy string row
actions, and the HTTP-200 failure reporting as success.

The section header now states the real window size (143 commits) and names the
backfill, so the 79-PR enumeration is not mistaken for the whole of it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MevuZ96T3E9yivS8QvghcR
@os-zhuang
os-zhuang marked this pull request as ready for review July 31, 2026 13:35
@os-zhuang
os-zhuang merged commit 60110bb into main Jul 31, 2026
16 checks passed
@os-zhuang
os-zhuang deleted the claude/rc1-release-changelog-pghvbz branch July 31, 2026 13:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/l tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants