Skip to content

Commit e79be7d

Browse files
docs(releases): point two release-owned north-star links at the published URL (#26992)
Fixes #26975 Part of #26073 Clause-②: no Metadata-protocol: none ## 维护者速读 - 改了什么:两处已发布历史文本(`CHANGELOG.md` 第 1033 行、`content/docs/releases/v17/17-6.mdx` 第 1483 行)里指向 North Star 页的链接目标,改为线上地址 `https://objectstack.ai/docs/concepts/north-star`;链接文字和周围历史原文一字未动。 - 为什么改:PR #26970 把 `concepts/north-star.mdx` 改名,这两处按文件路径/站内路由写的链接会让 Check Documentation Links 变红;改成线上 URL 后,改名前后都是绿的,无需与 #26970 排先后。 - 风险与回滚:极低,纯文档两行,不发布任何包;回滚即 revert 本 PR。 - 先看:`content/docs/releases/v17/17-6.mdx`(跨行链接只改了括号内目标)、`CHANGELOG.md` 第 1033 行。 - 两分钟验证:`git grep -n 'concepts/north-star' -- CHANGELOG.md content/docs/releases/`,预期只出现两行,且都是 `https://objectstack.ai/docs/concepts/north-star` 形式。 - 需要你做的:无,席位落地。 ## What changes Two link targets on release-owned surfaces, and nothing else: - `CHANGELOG.md` L1033: `[north-star §8](content/docs/concepts/north-star.mdx)` becomes `[north-star §8](https://objectstack.ai/docs/concepts/north-star)`. - `content/docs/releases/v17/17-6.mdx` L1482-1483: the link that wraps across two lines keeps its text and line break; only its target `(/docs/concepts/north-star)` becomes `(https://objectstack.ai/docs/concepts/north-star)`. Diff: 2 files, +2 / -2. This is the dedicated docs-only PR the release-owned correction channel requires, kept out of #26970 for that reason. No changeset: nothing in any package's `files[]` moves (`skip-changeset`). ## Tests No code changed, so there are no unit tests. The acceptance reading on head `447b33e6e9`: ``` $ git grep -n 'concepts/north-star' -- CHANGELOG.md content/docs/releases/ CHANGELOG.md:1033: ... see [north-star §8](https://objectstack.ai/docs/concepts/north-star) "No private expression DSL" ... content/docs/releases/v17/17-6.mdx:1483:Star](https://objectstack.ai/docs/concepts/north-star) path on the published packages (#21318), and a ``` ## Acceptance notes - Why the https form is green on both sides of the rename was verified on `origin/main` (`7bb8084590`), not assumed. `.github/workflows/check-links.yml` sets `LYCHEE_ARGS` to start with `--offline`. Its comment there reads "Offline means only `file://` targets are resolved -- every http(s) link is reported EXCLUDED, never requested." No line in `lychee.toml` does the exclusion: its `exclude` list names no `objectstack.ai` entry and is documented as inert under `--offline`. The flag is the mechanism. These links are therefore never fetched in CI, and the URL is also reachable today because the page exists until #26970 lands. - lychee is not installed in this container, so it was NOT MEASURED locally. This PR's `Check Documentation Links` run is the reading. ## Verification <details><summary>dispatch-gates: 50 derived commands, all exit 0, reconciled with --ran (head 447b33e)</summary> `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` derived 50 commands from the merge-base change set (2 paths). Every command was run with its exit code captured before any pipe, and all 50 exited 0. Two commands first exited 3 (PREREQUISITE NOT MET: `check:docs-transcript-drift` needs `@objectstack/lint` built, and `check:skill-examples` needs `@objectstack/client-react` built). Each passed after its closure was built under the verify lock (`VERDICT command-exit 0` both times). ``` Run reconciliation — 50 derived, 50 run, 0 NOT-MEASURED, 0 UNRUN. ✓ dispatch-gates --ran: 50 derived famil(ies) accounted for — 50 run, 0 NOT-MEASURED (a DERIVED zero — all 50 recorded an exit code and none of them is 3). ``` Selected verdict lines: ``` check-docs-redirects: OK (apps/docs/redirects.mjs: 98 entries ...) ✅ check-doc-anchors: 628 internal #fragment link(s) across 432 source file(s) all resolve to a real heading check-release-notes: OK — every released major has a curated, navigable release page. check-nul-bytes: OK (scanned 21719 text file(s) ... no raw ASCII control bytes). ✅ check-issue-citations: every citation this change adds resolves (or is a declared cross-repo reference). ✅ 267 prose examples type-check across 3 surface(s) ``` </details> --- _Generated by [Claude Code](https://claude.ai/code/session_01QSeKYmTYfaPbLQD4BJfomW)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent e6c4409 commit e79be7d

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ Followup to M10.30a. Walked every Setup menu in a real tenant; produced verdict
10301030
- **New `objectstack-formula` skill** ([`skills/objectstack-formula/SKILL.md`](skills/objectstack-formula/SKILL.md)) and rewritten [`content/docs/data-modeling/formulas.mdx`](content/docs/data-modeling/formulas.mdx) — Author-facing documentation of the canonical CEL contract: stdlib reference, mandatory patterns for AI emission, mechanical translation table from the legacy Salesforce-flavor DSL, and the determinism contract.
10311031

10321032
### Removed — M9 Expression Unification
1033-
- **Custom Salesforce-flavor formula engine** (`@objectstack/objectql`) — Deleted `packages/objectql/src/formula.ts` (433 LoC hand-written recursive-descent parser exposing 22 functions: `CONCAT`/`UPPER`/`IF`/`AND`/`OR`/`ISBLANK`/`TODAY`/…) and its companion `packages/spec/docs/formula-functions.md`. The engine had no formal grammar, no public training corpus, no AST persistence, and was a single-vendor surface. **Salesforce compatibility is not pursued** — see [north-star §8](content/docs/concepts/north-star.mdx) "No private expression DSL". Authors targeting Salesforce semantics rewrite their formulas in CEL using the translation table in the formula skill. Resolves D9.
1033+
- **Custom Salesforce-flavor formula engine** (`@objectstack/objectql`) — Deleted `packages/objectql/src/formula.ts` (433 LoC hand-written recursive-descent parser exposing 22 functions: `CONCAT`/`UPPER`/`IF`/`AND`/`OR`/`ISBLANK`/`TODAY`/…) and its companion `packages/spec/docs/formula-functions.md`. The engine had no formal grammar, no public training corpus, no AST persistence, and was a single-vendor surface. **Salesforce compatibility is not pursued** — see [north-star §8](https://objectstack.ai/docs/concepts/north-star) "No private expression DSL". Authors targeting Salesforce semantics rewrite their formulas in CEL using the translation table in the formula skill. Resolves D9.
10341034

10351035
### Added
10361036
- **Per-organization seed-data clone for new signups** (`@objectstack/plugin-security`) — In multi-tenant mode, when a user signs up after the very first user (whose org gets the seed via `claimOrphanTenantRows`), SecurityPlugin now copies the platform-first organization's user-defined data into the new user's personal workspace via `cloneTenantSeedData()`. Without this, every user-after-the-first landed on an empty dashboard — multi-tenant isolation is correctly enforced, so seed rows owned by the first org are filtered out by RLS for everyone else. Implementation: two-pass strategy — pass A inserts shallow row copies (lookup field values left as donor's old IDs) under the new `organization_id` and records `oldId → newId` per object; pass B walks each cloned record's lookup fields and rewrites values via the per-object remap so intra-clone foreign keys (e.g. `opportunity.account → account.id`) stay intact without needing topological insert ordering. Skips computed/virtual field types (`formula`, `summary`, `autonumber`) that have no underlying SQL column. Disambiguates `unique: true` columns with a per-tenant `clone-<orgsuffix>-` prefix so global UNIQUE indexes (e.g. `lead.email`) don't collide. Idempotent per-object — if the target org already has any row in an object, that object is skipped. Donor org is the oldest `sys_organization`. Best-effort: a per-object failure is logged at `warn` and never blocks signup. Wired via DI hook in `ensureUserHasOrganization` so the security plugin owns the policy and the helper stays unit-testable. Verified end-to-end with `pnpm dev:crm`: 2nd registered user gets 3 leads, 5 accounts, 4 opportunities, 5 campaigns, 4 products, 5 tasks, 2 cases, 1 contract cloned into their personal workspace.

‎content/docs/releases/v17/17-6.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1480,7 +1480,7 @@ it is tracked in #21361.
14801480

14811481
The 17.6.0 release verification found these: an upgrade of HotCRM on a
14821482
17.5.0-created database (objectstack-ai/hotcrm#1982), a walk of the [North
1483-
Star](/docs/concepts/north-star) path on the published packages (#21318), and a
1483+
Star](https://objectstack.ai/docs/concepts/north-star) path on the published packages (#21318), and a
14841484
checklist run of the P0 smoke and the 17.6-risk items on `617f25f8` (#21330).
14851485
Each was open when this page was written.
14861486

0 commit comments

Comments
 (0)