Uh oh!
There was an error while loading. Please reload this page.
feat(studio): Capabilities section in the object Settings panel (framework#2707/#2727) - #2377
Merged
Merged
Conversation
…ework#2707/#2727) The enable.* record-surface switches went fully live in the framework but only source-mode authors could set them. The Data-pillar object Settings panel now exposes them to builders — LIVE flags only, each with a one-line contract description: - Opt-in (spec default off): trackHistory (History tab), files (Attachments panel + server-side attachment gate). - Opt-out (spec default on): feeds (discussion panel + comment 403), activities (record timeline mirror), clone (clone endpoint 403). Checkboxes show the flag's EFFECTIVE runtime value; toggling writes an explicit boolean into the enable block preserving sibling keys. Dead flags (searchable/trash/mru) are deliberately not rendered — Studio only offers switches the runtime enforces. en + zh-CN strings. Verified: app-shell 152 files / 1175 tests green (4 new panel tests: effective defaults, authored values, sibling-preserving patch, opt-in patch). Browser-verified on a live Studio (fresh backend + console dev): section renders localized, toggles patch the draft, and the draft meta API returns enable {trackHistory:true, files:true, feeds:false} after save — untouched flags stay unmaterialized. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
Uh oh!
There was an error while loading. Please reload this page.
os-zhuang added a commit
that referenced
this pull request
Jul 24, 2026
#2377 removals (#2799) framework#2377 (ADR-0049 enforce-or-remove, closed by framework#3414) removed enable.trash / enable.mru from the spec entirely — ObjectCapabilities is now .strict(), so authoring them is a parse error — and corrected enable.searchable to LIVE (global-search opt-out). objectui never rendered these toggles or shipped i18n keys for them, so only the surrounding prose had drifted: - ObjectSettingsPanel comment no longer calls searchable/trash/mru 'dead'; it now states trash/mru are removed (strict-rejected) and searchable is live but not yet surfaced. - The capabilities test keeps its absence assertions (they now also guard against authoring strict-rejected keys) with an updated rationale. - perm.action.restore label stops promising a recycle bin that never existed: 'Restore deleted records (reserved — deletes are hard today)' (en + zh), matching the platform's real hard-delete contract. ObjectSettingsPanel (12) + PermissionMatrixEditor.basics + studio-locale i18n tests green. Claude-Session: https://claude.ai/code/session_01RRCHNGhKw8uVhA3ghXKDpA Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Aug 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概述
framework#2707/#2727 把
enable.*全部接线为 live 之后,只有源码作者能设置这些开关——Studio 完全没暴露。本 PR 在 Data 支柱的对象设置 tab(ObjectSettingsPanel)新增 "能力开关(enable.*)" 区,把开关交给业务构建者:trackHistoryfilesFILES_DISABLED闸feedsFEEDS_DISABLED闸activitiescloneCLONE_DISABLED)设计要点:
searchable/trash/mru不渲染(Studio 不提供不干活的开关)。=== true、opt-out!== false);切换写显式布尔进enable块并保留兄弟键;未动的开关不材料化。engine.studio.settings.cap*键)。验证
GET /meta/object/cap_probe?preview=draft返回enable: {trackHistory:true, files:true, feeds:false},未动开关未写入 ✓(发布被 @objectstack/client 发版后:dogfood 验证 batchTransaction 走 SDK path,并可选删除适配器裸 fetch 分支 #2694 命名空间前缀闸拦下属预期,与本 PR 无关)🤖 Generated with Claude Code