Repository navigation
docs(skills): teach the stack's push block — direct transport, credentialRef only, relay not yet served - #30764
objectstack-fleet[bot] wants to merge 1 commit into
Conversation
…tialRef only, relay not yet served Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1hJHYMCXtCDZwGBLV
|
domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk Contract-review-claim: session_016WV4d1mkgEris4MHHLjtnk · head a5d4298 · 2026-11-06T01:36Z |
|
domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk Contract reviewServed-tier: ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
Implemented-by: VERDICT: PASS |
|
domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk 维护者速读
席位核对 — ACCEPT · head a5d4298
|
Requested by Elon · project thread
domain:skills#1 · os-elon-musk · session_016WV4d1hJHYMCXtCDZwGBLV
Fixes #30092
Clause-②: no
Metadata-protocol: none
维护者速读
objectstack-platform技能的运维参考页新增「Mobile push」一小节,讲清 stack 的push配置块怎么写;SKILL.md里requires表的push那一格加了一个指向它的链接;skills(objectstack-platform): an eval case for the push capability and push stack key (follow-up of #29820) #29969 那条推送 eval 用例补上transport: 'direct'与credentialRef的断言。push这个键,没教怎么填。AI 要给os serve开推送时会去猜配置、可能把 APNs/FCM 密钥直接写进配置,或选一个尚未上线的中继通道。@objectstack/skillspatch;token 棘轮靠同文件删除重复内容付账(SKILL.md −2、operations.md −3),未抬任何上限。回滚即撤这一个 commit。skills/objectstack-platform/references/operations.md新增的## Mobile push段;② 同文件里为付账删掉的两行「Common ops pitfalls」(与 Ports & networking 一节重复);③evals/config-plugins-ops.json第 12 条。packages/spec/src/system/push-config.zod.ts与packages/services/service-push/src/capability-arg.ts,确认今天只服务direct、中继(含空{})启动即拒、密钥只经credentialRef。skills/**属 Tier H,需一位受管审批人(os-zhuang 或 hotlong)批准后合并。What changes
skills/objectstack-platform/references/operations.mdgains## Mobile push:requires: ['push']reads the top-levelpushkey (PushServiceConfigSchema); the served transport today istransport: 'direct'only, one block per vendor, at least one (apns:teamId,keyId,topic,environment,credentialRef;fcm:projectId,credentialRef);credentialRefnames each secret and never holds it, and an inlineprivateKey/serviceAccount/ PEM / JSON value is refused; the relay transport (also what{}or an absent key reads as) is refused at boot until its sender ships (service-push: send through the hosted relay transport (push-relay.zod.ts wire, cloud binding credential) #29920, open).skills/objectstack-platform/SKILL.md: therequirestable's service row pointspushat that section (one pointer, no new line).skills/objectstack-platform/evals/config-plugins-ops.jsoncase 12 (skills(objectstack-platform): an eval case for the push capability and push stack key (follow-up of #29820) #29969's): the expected output teaches the direct shape and the relay's status;must_containgainstransport: 'direct'andcredentialRef,must_not_containgainsserviceAccount:. Case shape unchanged..changeset/30092-platform-skill-push-block.md:'@objectstack/skills': patch.Facts read off
origin/main254f2ec1:packages/spec/src/system/push-config.zod.ts(the schema, itsstrictObjectguidance maps for inline secrets,PushRelayTransportConfigSchemamarked[PLANNED — not yet served]),packages/services/service-push/src/capability-arg.ts(resolvePushCapabilityArgthrows whenconfig.transport !== 'direct', absent and{}included) andsrc/credential.ts(open-tier resolver = environment variable named by the reference).Token ratchet — paid by same-file deletion, no ceiling moved
skills/objectstack-platform/SKILL.mdskills/objectstack-platform/references/operations.mdLines:
SKILL.md413 → 412;operations.md199 → 212; allSKILL.mdfiles summed 4523 → 4522.Deleted restatement that paid for it:
operations.md: theos validaterow's list of the three gates (the Verify-your-work section right below lists them); the "Useos validateas the fast inner-loop check…" sentence (the code block's comments say it); "run the same structural + semantic gates" → "Both run the same gates"; theos lintaside's example list; two Common-ops-pitfalls rows (Port N is already in use, better-authInvalid origin403) that restate the Ports & networking section's production row and sync list.SKILL.md: the auth-callback example list in "authimpliesemail".Tests
Docs and eval fixture only; no code behaviour changes, so no ablation.
Acceptance notes
references/plugin-development.md(held by PR docs(skills): drop the removed feature_flags settings manifest from plugin-development #30726) andpackages/**untouched.Verification
Local runs on head
a5d42984(afterpnpm installand aturbo run buildof the@objectstack/spec/lint/formula/objectqlclosures underos-verify-lock).node scripts/pm/dispatch-gates.mjs --ran→✓ dispatch-gates --ran: 46 derived famil(ies) accounted for — 45 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3).pnpm lintexit 0.NOT MEASURED:
check:dual-build-cjs-loads, reason: PREREQUISITE NOT MET (needs every package'sdist/, i.e. a whole-tree build); a skills/docs diff moves no build output, so it is left to CI.Exit codes (45 + 1 + lint)