Skip to content

Commit 4a55c08

Browse files
committed
Merge origin/main into claude/project-thread-f9p63p
Claude-Session: https://claude.ai/code/session_01L6bhgXPvYEKGGY6sms31q2 Co-authored-by: Claude <noreply@anthropic.com>
2 parents b3a0abd + 7e200b4 commit 4a55c08

15 files changed

Lines changed: 1242 additions & 38 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
'@objectstack/cli': patch
3+
---
4+
5+
fix(cli): `os package publish` names the `objectstack.manifest.json` keys it does not send (`tags`, `publisher`, `isStarter`, `preview`, `visibility`) instead of dropping them silently
6+
7+
Clause-②: no
8+
Metadata-protocol: none
9+
10+
The listing file's schema accepts these keys, but publish never carried them to the control plane, so an author's tags, starter flag or preview simply never reached the catalog and nothing said why. Publish now prints a warning naming each declared catalog key: it is declared but not yet carried by the hosted catalog, with a link to the issue tracking that (#27348). A declared `visibility` gets its own warning pointing at `--visibility`, which does carry it. The publish still succeeds: the bundled blank template ships `isStarter: true`. A test classifies every key of the listing-file schema as sent, warned about, or scaffold-only, so a key the schema gains later fails until publish handles it.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
'@object-ui/app-shell': patch
3+
'@object-ui/console': patch
4+
---
5+
6+
fix(studio): a read-only package's flow Enabled switch no longer looks like a live control
7+
8+
Clause-②: no
9+
Metadata-protocol: none
10+
11+
- **Before.** In Studio's Automations pillar, a read-only (code) package's flow showed its Enabled switch with a green track. The switch was already disabled, but it read as one the author could flip.
12+
- **Now.** On a read-only package the track is muted and a lock sits beside the word. The thumb position, the word (Enabled or Disabled) and `aria-checked` still say whether the flow is on. The read-only reason on the wrapper is unchanged.
13+
- **Unchanged.** A writable package's switch keeps its green track and stays operable.

‎.claude/skills/pm-dispatch/references/seat-lifecycle.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@
3737
- 敲门后满 `RECLAIM_AFTER_HOURS` 无答复即由总监席一笔中继释放,细则 `triage-duties.md`。
3838
- ⛔ 永不从贴的 `updated_at` 或标题推死活;活性只认在任者自己的产出。
3939
- 竞态三招:动手前重 fetch 正文、审计评论时间戳先到先得、写后回读。
40-
- 收班 = 状态 flush + 在飞显式安置,不是在飞归零;派发口径失效,简报 ⛔ 不列作继承裁决。
40+
- 收班 = 状态 flush + 在飞默认交回队列、不等落地;派发口径失效,简报 ⛔ 不列作继承裁决。
4141
- 坐席发 `seat-online`、收班简报同一动作发 `seat-offline`,键见 `project-forms.md` 〈信箱 PR〉。
4242
- 强制接管的新账号代撞墙账号发 `seat-online`;Routine 席唤不醒,读信箱靠巡查。
43-
- 离任留守只写简报点名的项,⛔ 不读队列、不新派发、不碰未点名卡。
43+
- 离任留守只写点名的已 ACCEPT 待队列或待人批 PR,⛔ 不读队列、不新派发、不碰未点名卡。
4444
- 换班报告默认零建议,只收三类:原则错/缺、可机械化项、平台事实变化。
4545
- 原则错/缺 → 只进简报,维护者点名才立卡;可机械化项 → 门禁/脚本卡,⛔ 不是散文。
4646
- 平台事实变化 → references 事实表改一行。

‎.claude/skills/pm-dispatch/references/seat-post-protocol.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@
3232
- 耐久状态只住正文或以 App 写入;正文守中继上限 60,000 字节,超大贴由半状态巡查浮出。
3333
- 协议升级迁移状态、或巡检发现正文不符时,当场改正文 + 审计评论。
3434
- Routine 座位的收尾简报也落自己的座位贴,它是下一轮自退守卫的读数。
35-
- 安置默认离任留守;留不了才热移交:在飞卡落收单注记 + 点名看护者。
35+
- 收班默认交回(〈交接收尾清单〉第 2 步);留守只剩已 ACCEPT 待队列或待人批的 PR。
36+
- 留守写面 = 简报点名的这些 PR,残余定时器同界;留不了才热移交:收单注记 + 点名看护者。
3637
- 收单注记写评审判据、落地步骤与当前状态;看护只守落地,⛔ 评审判断不可外包。
3738
- 看护者默认下任座位;在跑云会话经 poke 触发器投递,⛔ 非 `SendMessage` 直投。
38-
- 收班序列:贴正文与标题刷新在先,简报评论是最终一笔;继任的释放判据 = 简报在。
39+
- 收班序列不看维护者措辞:`check-handover.mjs` 退出 0 → 刷正文与标题 → 简报最终一笔。
3940
- 标题滞后是可修半状态,坐席时顺手修,⛔ 不是阻塞。
40-
- 留守写面恰为简报点名的项:已 ACCEPT 待队列 PR、落地中的评审链载体;残余定时器同界。
4141
- 末尾巴合并 ⇒ 贴上一条尾清注记;继任立即坐席,点名集作围栏。
4242
- 标题词表不扩,收班座位恒 `⏳ vacant`;留守登记(谁、哪些尾巴)= 说明段一行。
4343

4444
## 交接收尾清单(漏一步就是留残缺现场)
4545

4646
1. 立即停止新派发。
47-
2. 在手工件逐件处置:本席认领的卡落地,或 `Release:` 与清 assignee 同笔释放,转成真实状态。
47+
2. 认领卡落地,或同笔 `Release:`+`Resume-from:`+清 assignee 交回 `pm:queue`;`needs_decision` 进决策箱。
4848
3. 全量枚举本车道队列、决策箱与 findings,形成接任台账;等裁决的卡只挂 `needs-user-decision`。
4949
4. 台账义务逐条带卡号(条件型开 `pm:blocked`+`Blocked-by:`,定时型 `Restart-when:`),正文只放指针。
5050
5. 第 2、3 步由 `node scripts/pm/check-handover.mjs --session=ID --account=LOGIN` 核,退出 0 才写空座正文。

‎content/docs/data-modeling/drivers.mdx‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,11 @@ Checks that need no connection can still run in the constructor, which fails
305305
even earlier — that is where `MongoDBDriver` puts its
306306
[tenancy guard](#multi-tenancy-not-supported).
307307
308+
A driver need not front a database at all: a plugin can publish one over a REST API or
309+
any other system, and an `external` object bound to it is served from there on every
310+
read. The recipe, the rules such a driver keeps and a test template are in
311+
[Virtual objects](/docs/data-modeling/virtual-objects).
312+
308313
## PostgreSQL (via `@objectstack/driver-sql`)
309314
310315
```bash

‎content/docs/data-modeling/external-datasources.mdx‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ auto-connected, validated at boot, and queryable — with no application code.**
1717
This guide is about reading/writing the *live* remote tables (federation). To
1818
*copy* rows into ObjectStack-owned tables instead, see seed data / data sync. For
1919
the plain multi-datasource routing of **managed** databases ObjectStack owns, see
20-
[Database Drivers](/docs/data-modeling/drivers).
20+
[Database Drivers](/docs/data-modeling/drivers). When the remote is not a database a
21+
built-in driver reaches — a REST API, a planning engine, a device gateway — serve the
22+
object from your own plugin driver instead: [Virtual objects](/docs/data-modeling/virtual-objects).
2123
</Callout>
2224

2325
## 1. Declare the datasource
@@ -305,6 +307,8 @@ default allows all connects (subject to the gating above).
305307
- [Database Drivers](/docs/data-modeling/drivers) — managed multi-datasource routing,
306308
[read-only via database privileges](/docs/data-modeling/drivers#read-only-grant-it-at-the-database-not-in-metadata),
307309
and [why the platform does not route read replicas](/docs/data-modeling/drivers#read-replicas-the-platform-does-not-route).
310+
- [Virtual objects](/docs/data-modeling/virtual-objects) — the same binding served by
311+
a plugin driver you write, for a remote that is not a database.
308312
- [Datasource reference](/docs/references/data/datasource) — every `defineDatasource` field.
309313
- The `examples/app-showcase` `showcase_external` datasource — a runnable end-to-end demo.
310314
- ADR-0015 (federation spec) and ADR-0062 (external-datasource runtime).

‎content/docs/data-modeling/index.mdx‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ That one definition is enough to get a persisted table, CRUD + query endpoints,
6060
<Card href="/docs/data-modeling/import-mappings" title="Import Mappings" description="Named column-to-field projections applied by the import endpoint" />
6161
<Card href="/docs/data-modeling/external-datasources" title="External Datasources" description="Federate external databases into the model" />
6262
<Card href="/docs/data-modeling/drivers" title="Database Drivers" description="Configure SQL, MongoDB, in-memory, and WASM drivers" />
63+
<Card href="/docs/data-modeling/virtual-objects" title="Virtual Objects" description="Serve an object's rows from your own server through a plugin driver" />
6364
<Card href="/docs/data-modeling/analytics" title="Analytics Datasets" description="Model datasets for dashboards and reports" />
6465
</Cards>
6566

‎content/docs/data-modeling/meta.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"import-mappings",
1818
"external-datasources",
1919
"drivers",
20+
"virtual-objects",
2021
"analytics"
2122
]
2223
}

0 commit comments

Comments
 (0)