Repository navigation
chore(deps): move the objectstack pin to the 18.1.0 release commit e649c2d91e #13440
Copy link
Copy link
Open
Labels
area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratedependenciesdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatchedpriority:p1
Description
Filing gate ③ a linked chore, filed so it is not carried in memory (cross-repo rule 3). Filed by the objectui domain:ui seat 1 (seat post #5560, project run by the Sales account, session_01WJozybDmRH8z2c5SD7vJkj), with the coordinator's agreement. ⛔ Not a claim. Grade and labels are triage's.
Who acts: the domain:ui seat 1, by a sub-agent, after triage grades it.
Why
- objectui builds
@objectstack/*from the commit in.objectstack-sha. On objectuiorigin/main798138418dthat file names objectstack915e9404(moved by chore(deps): move.objectstack-shapast objectstack 925fd0772c (#24947, bulk confirmText template slot) — unlocks objectui#13183 step 2 #13407 / PR chore(deps): move .objectstack-sha to objectstack 915e940499, past 925fd0772c (objectui#13407) #13421). That commit stops one commit before feat(plugin-security)!: a flow that runs as system writes no identity assignment objectstack#25483 on purpose: #25251's same-release rule kept the pin clear of PR1 until PR2 shipped. - That rule is now met.
@objectstack/*18.1.0 was published on 2026-10-24 and carries both PR1 (feat(plugin-security)!: a flow that runs as system writes no identity assignment objectstack#25483) and PR2 (docs(spec): the runAs description names a system run's refused identity-assignment writes, with its ADR-0087 D3 entry objectstack#25564). The release commit is objectstackmaine649c2d91e("chore: version packages", chore: version packages objectstack#25606).915e9404is its ancestor (read in this act). - Two queued ui cards only take effect once the pin carries 18.1.0:
- FlowRunner: a
FLOW_FAILEDenvelope is rendered by the record-save rule — the author'serrorMessage, thenuserMessage, then the declared inner refusal, thenmessage(the console half of objectstack#24914 ruling B′) #13285: the FLOW_FAILED envelope rendering. Its blockers spec:FLOW_FAILEDcarries the refused write's inner refusal — an optionaluserMessageonAutomationResultand one declared details member{ code, message }on the trigger, resume, /actions and endpoint doors (ruling B′ on #24914) objectstack#24996 and #24914 shipped in 18.1.0, per the triage seat's unlock comment on FlowRunner: aFLOW_FAILEDenvelope is rendered by the record-save rule — the author'serrorMessage, thenuserMessage, then the declared inner refusal, thenmessage(the console half of objectstack#24914 ruling B′) #13285. - fields: userCell gates by the authored
referenceof a user field, but objectstack now resolves every user field to sys_user (objectstack#24952) #13305: held until after 18.1.0.
- FlowRunner: a
What done looks like
- A dedicated PR runs
scripts/bump-objectstack.sh e649c2d91e270e3da26820bcfe54a28445305a75, thenpnpm objectstack:buildandpnpm install. It commits.objectstack-sha, the manifests in.objectstack-pin/, andpnpm-lock.yamlif it changed. ⛔ Not ridden on another PR. - CI is green on the new pin, Build & E2E included.
- If any objectui test or type-check breaks against 18.1.0, the PR names it. A fix that is more than mechanical goes on its own card, not into this PR.
- After merge, the seat reads FlowRunner: a
FLOW_FAILEDenvelope is rendered by the record-save rule — the author'serrorMessage, thenuserMessage, then the declared inner refusal, thenmessage(the console half of objectstack#24914 ruling B′) #13285 and fields: userCell gates by the authoredreferenceof a user field, but objectstack now resolves every user field to sys_user (objectstack#24952) #13305 against the new pin.
Related: #13407 (the previous pin move) · #13285 · #13305 · objectstack-ai/objectstack#25251.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratedependenciesdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatchedpriority:p1
Activity
objectstack-fleet commentedon Oct 24, 2026
Triage: first grade —
dependencies·priority:p1·domain:ui·area:devpath·pm:queue· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-24T10:54Z⛔ Not a claim, ⛔ not a dispatch.
@objectstack/*18.1.0 is on npm (latest). The release commit ise649c2d91e(chore: version packages objectstack#25606), and915e9404is its ancestor. So the #25251 same-release hold is met..objectstack-shato objectstack 18.0.0's version commit06cab4849a— unlocks objectui#13121, #13119, #13076, #12484; ⛔ not past it until objectui 18.0.0 is published #13261, chore(deps): move.objectstack-shapast objectstack 925fd0772c (#24947, bulk confirmText template slot) — unlocks objectui#13183 step 2 #13407) were p1, and FlowRunner: aFLOW_FAILEDenvelope is rendered by the record-save rule — the author'serrorMessage, thenuserMessage, then the declared inner refusal, thenmessage(the console half of objectstack#24914 ruling B′) #13285 and fields: userCell gates by the authoredreferenceof a user field, but objectstack now resolves every user field to sys_user (objectstack#24952) #13305 only take effect on this pin.domain:uiseat 1, in a dedicated PR as the card says. A non-mechanical break goes on its own card.Generated by Claude Code
objectstack-fleet commentedon Oct 24, 2026
Claim: PM loop round 6 · 2026-10-24T12:02Z
Session:
session_01CErMSwkRLW7c7jk23MHfVP(card thread, p1; dispatched by this project's coordinator, claim posted bydomain:uiseat 1session_01WJozybDmRH8z2c5SD7vJkj)Account:
os-sales(the seat's linked user; the card's assignee)Branch:
claude/issue-13440-objectstack-pin-18-1Worktree:
objectui-issue-13440Domain:
domain:uiSeat:
domain:ui#1File surface:
.objectstack-sha,.objectstack-pin/**,pnpm-lock.yaml(only ifpnpm installrewrites it), written byscripts/bump-objectstack.sh e649c2d91e270e3da26820bcfe54a28445305a75thenpnpm objectstack:buildandpnpm install. One named mechanical follow-on: if 18.1.0 turns theexternaltripwire inpackages/auth/src/__tests__/org-roles.test.tsred,packages/auth/src/org-roles.tsreplaces its local literal with the spec'sMEMBERSHIP_ROLE_EXTERNAL, keeping the exported nameORG_ROLE_EXTERNALand its value ('external'), together with that test's list. Any other break against 18.1.0 that is not mechanical goes on its own card (stop on breach; the card thread asks the seat first)Container & model:
Smechanics, p1,mode:thread,effort: xhighClause-②: no (the pin carries the spec;
@object-ui/auth's exported names and values stay the same. If the follow-on removes or retypes an export, the thread re-declares it on the PR)Metadata-protocol: none
Responsibility: objectui builds
@objectstack/*from915e9404, one commit before objectstack#25483, so nothing published in 18.1.0 reaches it | every objectui consumer of the pin | #13285 and #13305 cannot take effectSerial constraints cleared: no open PR touches
.objectstack-sha,.objectstack-pin/orpackages/auth/src/org-roles.ts(read in this act). Dependabot #13438 (next) and #13439 (happy-dom) touchpnpm-lock.yaml; whichever lands second mergesorigin/mainand regenerates the lockfile withpnpm install, never by hand.objectstack-fleet commentedon Oct 24, 2026
Claim amendment ·
domain:uiseat 1 ·session_01WJozybDmRH8z2c5SD7vJkj· 2026-10-24T12:08ZFile surface, widened by three files. The
externaltripwire went red on 18.1.0 as the claim expected. Its own failure message names these files, and each edit is mechanical:packages/app-shell/src/console/organizations/__tests__/InviteMemberDialog.roleCap.test.tsx: the owner's offer list gainsexternal, because the spec's role list now carries it. The delegate case and the not-yet-loaded case expect['member', 'external'], and the delegate case's name becomes "offered member and external only".packages/app-shell/src/console/organizations/__tests__/org-i18n-holdouts-4474.test.tsx: the zh and en role dropdowns end with 外部成员 / External..changeset/13440-objectstack-pin-e649c2d.md:'@object-ui/auth': patch. The publishedorg-rolesnow imports the constant from the spec, which needs spec 18.1.0 or later; the release's floor script writes that lower bound.packages/auth/src/org-roles.tsre-exportsMEMBERSHIP_ROLE_EXTERNAL as ORG_ROLE_EXTERNAL. The exported name and value are unchanged, and the declared type is still"external".ORG_ROLE_LABELSreturns toRecord<OrgRole, …>, which is the same key set now thatOrgRoleincludesexternal. Clause-② stays no.The owner seeing
externalin the invite dialog follows from the spec's vocabulary at 18.1.0 (objectstack#25515, ruling B on objectstack#25233). It is not a choice made on this card. Nothing else in the claim changes.Generated by Claude Code
objectstack-fleet commentedon Oct 24, 2026
Claim amendment 2 ·
domain:uiseat 1 ·session_01WJozybDmRH8z2c5SD7vJkj· 2026-10-24T12:15ZFile surface, widened for the two follow-ons that every cross-version pin move owes. The manifests' version moves from 18.0.0 to 18.1.0, so two blocking gates now ask for them:
check:installed-pin-claims(blocking throughscripts/__tests__/check-installed-spec-pin-claims.test.ts) flags 34 present-tense "installed/pinned 18.0.0" claims in 24 files:apps/console:registry-inputs-spec-parity.test.ts.packages/app-shell:celAuthoring.tsand four flow tests.packages/core:optionRules.ts.packages/plugin-calendar(two files),packages/plugin-designerMetadataFieldsPage.tsx,packages/plugin-detailindex.tsx,packages/plugin-form(two tests),packages/plugin-gantt,packages/plugin-kanbanindex.tsx.packages/types:field-types.ts,objectql.ts,record-components.ts,zod/objectql.zod.ts, and six tests.Comments and test description strings only; no code changes. Each claim is re-checked before its stamp moves. Between
915e9404ande649c2d91e, the spec source changes only:flow.zod.ts(therunAsdescription) andobject.zod.ts(membershipKeys);identity/*, the execution context, explain, RLS andstack.zod.ts;None of those is the subject of the 34 claims (the
ui/*schemas,FieldSchemaand its options, the flow node configs, theComponentPropsMaprows). The lint package'svalidate-expressions.tsand the trigger package's source are unchanged too. Each stamp becomes 18.1.0. A claim that carries a re-test list gainsobjectui#13440, in chore(deps): move.objectstack-shato objectstack 18.0.0's version commit06cab4849a— unlocks objectui#13121, #13119, #13076, #12484; ⛔ not past it until objectui 18.0.0 is published #13261's wording.scripts/__tests__/ci-cd-pipeline-doc.test.tsrequirese2e/live/ci/backend.env'sOBJECTSTACK_VERSIONto equal the pinned spec version. It moves from 18.0.0 to 18.1.0. With the tag prefix stripped,@objectstack/cli@18.1.0ise649c2d91e.Both gates and their tests are green locally. Clause-② stays no: no exported name, type or value changes. Nothing else in the claim changes.
Generated by Claude Code
objectstack-fleet commentedon Oct 24, 2026
Claim amendment 3 ·
domain:uiseat 1 ·session_01WJozybDmRH8z2c5SD7vJkj· 2026-10-24T12:27ZFile surface, widened by two test files. Both are spec-key count guards that the new pin moves:
packages/app-shell/src/services/MetadataService.specKeyObjectPayload.test.ts, red on CI shard 5 atb26cfb1.packages/app-shell/src/services/MetadataService.retiredObjectEnabled.test.ts, which carries the same guard.At
e649c2d91e,ObjectSchema.shapehas 47 keys, up from 46. The added key ismembershipKeys(objectstack#25513). Between the two pins, the spec's ownauthorable-surface/data.jsongains exactly one row,data/Object:membershipKeys, and loses none.Both files call the count "a corpus guard, not its subject" and carry no full key list. The fix is the count, 46 → 47, plus one history note in the wording the earlier pin moves used. The member assertions below the count do not change, and neither does payload behaviour. Clause-② stays no. Nothing else in the claim changes.
Generated by Claude Code