From 78dfbca6d872bc87e61e8ea9a357bb99d04691e6 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 21 Jul 2026 15:57:36 +0000 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20rename=20residual=20framework?= =?UTF-8?q?=E2=86=92objectstack=20dir/pin=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to the repo rename: retarget the core symlink to .../objectstack-ai/objectstack/packages/core, update cloud .framework-sha→.objectstack-sha mentions in CHANGELOG/ADR text, a /framework/skills comment, and local ~/work + GitHub personal-path references to match the renamed checkout convention. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_011kPznpkdptgo2hvW7wMDNw --- .github/workflows/scaffold-e2e.yml | 2 +- core | 2 +- docs/adr/0078-no-silently-inert-metadata.md | 2 +- docs/audits/2026-06-handwritten-docs-accuracy-followups.md | 2 +- packages/cli/CHANGELOG.md | 4 ++-- packages/plugins/driver-sqlite-wasm/scripts/restart-proof.mjs | 2 +- packages/spec/CHANGELOG.md | 4 ++-- scripts/bump-objectui.sh | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/scaffold-e2e.yml b/.github/workflows/scaffold-e2e.yml index b83d3e7485..cc431879e9 100644 --- a/.github/workflows/scaffold-e2e.yml +++ b/.github/workflows/scaffold-e2e.yml @@ -118,7 +118,7 @@ jobs: # 15.1 third-party eval: the repo-internal dogfood-verification skill # (.claude/skills/) leaked into scaffolded projects. Two leak paths, # two assertions against THIS checkout: - # 1. The scaffolder/docs command is `skills add …/framework/skills + # 1. The scaffolder/docs command is `skills add …/objectstack/skills # --all` — the /skills subpath is the hard boundary, because the # skills CLI's --all implies --skill '*' which INCLUDES # metadata.internal skills. Install from the subpath and assert diff --git a/core b/core index f59d5125ee..52ffc2becd 120000 --- a/core +++ b/core @@ -1 +1 @@ -/tmp/workspace/objectstack-ai/framework/packages/core \ No newline at end of file +/tmp/workspace/objectstack-ai/objectstack/packages/core \ No newline at end of file diff --git a/docs/adr/0078-no-silently-inert-metadata.md b/docs/adr/0078-no-silently-inert-metadata.md index eb4a26ef49..6dacce271a 100644 --- a/docs/adr/0078-no-silently-inert-metadata.md +++ b/docs/adr/0078-no-silently-inert-metadata.md @@ -87,7 +87,7 @@ v1 = the shared predicate + the audit's **verified Tier-A** shapes (authoring co ## Consequences - **Positive.** Closes the gate-1 instance-completeness hole and the path asymmetry: one predicate, enforced on every authoring surface, so a hand/CLI/MCP author gets the same protection the cloud build agent does. Silent inertness becomes a *loud, self-correctable* error (ADR-0038 loop) instead of a false "done". The three gates compose into an honest chain — *valid* → *complete* → *has a live consumer* → *runs correctly*. §3 makes a correct authoring un-strippable. -- **Negative / cost.** A shared predicate plus dual wiring is more than a cloud-only rule; mitigated by reusing the `isIncoherentAggregate` pattern and the existing `@objectstack/lint` harness. The audit is a candidate list — each rule costs a verification pass before it ships (deliberately; see the sharing-rule reversal). Cloud `.framework-sha` must bump when graph-lint re-homes onto the shared predicate. +- **Negative / cost.** A shared predicate plus dual wiring is more than a cloud-only rule; mitigated by reusing the `isIncoherentAggregate` pattern and the existing `@objectstack/lint` harness. The audit is a candidate list — each rule costs a verification pass before it ships (deliberately; see the sharing-rule reversal). Cloud `.objectstack-sha` must bump when graph-lint re-homes onto the shared predicate. - **Follow-up.** (1) Define the authoritative Tier-A predicate set. (2) cloud#687 is the first instance — its rules re-home onto the shared predicate in Phase 1. (3) Each Tier-B shape files its verification note before becoming a rule. ## Non-goals diff --git a/docs/audits/2026-06-handwritten-docs-accuracy-followups.md b/docs/audits/2026-06-handwritten-docs-accuracy-followups.md index c65cde6df4..1199111f0c 100644 --- a/docs/audits/2026-06-handwritten-docs-accuracy-followups.md +++ b/docs/audits/2026-06-handwritten-docs-accuracy-followups.md @@ -157,7 +157,7 @@ Out of scope here (generated, DO-NOT-EDIT); fix by regenerating from spec in a d - The `visible` type label was changed to `Expression`. Strictly, ExpressionInputSchema (packages/spec/src/shared/expression.zod.ts:83-86) accepts either a bare CEL string OR a canonical Expression envelope at input time; the doc's `Expression` label + 'CEL expression' description is accurate enough, but a reader might not realize a raw string shorthand is also accepted. Minor; not an inaccuracy. ### `guides/metadata/dashboard.mdx` -- Descriptive prose at /Users/oszhuang/Documents/GitHub/framework/content/docs/ui/dashboards.mdx:165-169 ('ObjectUI currently renders dataset-backed metric, chart, table/list, pivot, funnel, and gauge-style widgets ... drill-down affordances') is a runtime-renderer capability claim not directly backed by the spec schemas I read. It is not false on its face (all named chart types are in ChartTypeSchema) but the specific rendering/drill-down feature claims live in ObjectUI (objectui repo / client-react), which is outside packages/spec — not independently verified here. Low priority, no evidence it is wrong. +- Descriptive prose at /Users/oszhuang/Documents/GitHub/objectstack/content/docs/ui/dashboards.mdx:165-169 ('ObjectUI currently renders dataset-backed metric, chart, table/list, pivot, funnel, and gauge-style widgets ... drill-down affordances') is a runtime-renderer capability claim not directly backed by the spec schemas I read. It is not false on its face (all named chart types are in ChartTypeSchema) but the specific rendering/drill-down feature claims live in ObjectUI (objectui repo / client-react), which is outside packages/spec — not independently verified here. Low priority, no evidence it is wrong. - Line 102: filter is documented as type `FilterCondition` with note '(runtimeFilter)'. Schema (dashboard.zod.ts:121-122) confirms widget.filter is FilterConditionSchema applied as runtimeFilter — accurate. No action needed; noting only that the parenthetical 'runtimeFilter' is internal naming that may confuse authors but is faithful to the schema describe() text. ### `guides/metadata/doc.mdx` diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 566ccde20f..4c4b0c2142 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -54,7 +54,7 @@ Migration: use the canonical kebab-case tokens `ai-studio` / `ai-seat`. All first-party configs were migrated in #862/#863; only stacks still carrying the legacy spelling are affected. Cloud's `objectos-runtime` (pinned to an older - framework) follows on its next `.framework-sha` bump. + framework) follows on its next `.objectstack-sha` bump. ### Patch Changes @@ -424,7 +424,7 @@ extract` seeds bundles from it. Coverage now honours that contract — an inline Migration: use the canonical kebab-case tokens `ai-studio` / `ai-seat`. All first-party configs were migrated in #862/#863; only stacks still carrying the legacy spelling are affected. Cloud's `objectos-runtime` (pinned to an older - framework) follows on its next `.framework-sha` bump. + framework) follows on its next `.objectstack-sha` bump. ### Patch Changes diff --git a/packages/plugins/driver-sqlite-wasm/scripts/restart-proof.mjs b/packages/plugins/driver-sqlite-wasm/scripts/restart-proof.mjs index 3781fd5ee9..3f8d508878 100644 --- a/packages/plugins/driver-sqlite-wasm/scripts/restart-proof.mjs +++ b/packages/plugins/driver-sqlite-wasm/scripts/restart-proof.mjs @@ -11,7 +11,7 @@ import { createRequire } from 'node:module'; import { dirname, join } from 'node:path'; const FILENAME = - '/Users/zhuangjianguo/Documents/GitHub/framework/examples/app-todo/.objectstack/data/todo.wasm.db'; + '/Users/zhuangjianguo/Documents/GitHub/objectstack/examples/app-todo/.objectstack/data/todo.wasm.db'; const STATE_FILE = new URL('./.restart-proof-id', import.meta.url); const require = createRequire(import.meta.url); diff --git a/packages/spec/CHANGELOG.md b/packages/spec/CHANGELOG.md index a6efd51939..8e8347a61d 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -282,7 +282,7 @@ Migration: use the canonical kebab-case tokens `ai-studio` / `ai-seat`. All first-party configs were migrated in #862/#863; only stacks still carrying the legacy spelling are affected. Cloud's `objectos-runtime` (pinned to an older - framework) follows on its next `.framework-sha` bump. + framework) follows on its next `.objectstack-sha` bump. - b659111: feat(spec)!: remove dead author-facing metadata properties (#2377, ADR-0049 enforce-or-remove) @@ -857,7 +857,7 @@ Migration: use the canonical kebab-case tokens `ai-studio` / `ai-seat`. All first-party configs were migrated in #862/#863; only stacks still carrying the legacy spelling are affected. Cloud's `objectos-runtime` (pinned to an older - framework) follows on its next `.framework-sha` bump. + framework) follows on its next `.objectstack-sha` bump. ## 16.0.0-rc.0 diff --git a/scripts/bump-objectui.sh b/scripts/bump-objectui.sh index 2744bb9588..d71a633f62 100755 --- a/scripts/bump-objectui.sh +++ b/scripts/bump-objectui.sh @@ -13,7 +13,7 @@ # # Assumes sibling layout: # ~/work/objectui -# ~/work/framework ← run from here +# ~/work/objectstack ← run from here # # objectui ships @object-ui/console as a static SPA. The framework # release pipeline reads .objectui-sha, clones objectui at that commit, From 55d477b5e6d6a1e5ae0a62a198d9ddf7f3142112 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 21 Jul 2026 16:00:04 +0000 Subject: [PATCH 2/2] chore: add empty changeset for tier-2 rename cleanup Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_011kPznpkdptgo2hvW7wMDNw --- .changeset/rename-framework-objectstack-tier2.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .changeset/rename-framework-objectstack-tier2.md diff --git a/.changeset/rename-framework-objectstack-tier2.md b/.changeset/rename-framework-objectstack-tier2.md new file mode 100644 index 0000000000..aed8964250 --- /dev/null +++ b/.changeset/rename-framework-objectstack-tier2.md @@ -0,0 +1,4 @@ +--- +--- + +Tier-2 of the framework -> objectstack rename: retarget the core symlink and update residual local checkout-dir / pin-file references (.objectstack-sha mentions, personal paths, a skills-path comment). Symlink + docs/comments only, no package code changes, so this releases nothing.