Repository navigation
fix(app-shell,i18n): the Organization flows page says each draft publishes by itself, and a deep-link miss shows no false "no designers" notice (objectui#11591) - #11606
Merged
Conversation
…s publish, and a deep-link miss shows no false "no designers" notice (objectui#11591) The package-less sheet's confirm note reads a new `preview.changes.confirmNoteSeparate` family (all ten packs): each draft publishes by itself and one that fails stays pending. A package's sheet keeps `preview.changes.confirmNote` unchanged. The Automations pillar reads the preview registry for `flow`, its one type, instead of the open flow's type, so with no flow open the canvas chip no longer says no designers are registered. Claude-Session: https://claude.ai/code/session_01FjqrwXPfSMkSfkKYDSRkN2 Co-authored-by: Claude <noreply@anthropic.com>
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
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 free
to 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.
Fixes #11591
Clause-②: no
Implemented by an os-dev run of the PM claim on the card (branch
claude/issue-11591-org-flows-copy, sessionhttps://claude.ai/code/session_01FjqrwXPfSMkSfkKYDSRkN2).What changed
1. The package-less sheet no longer claims atomicity
DraftChangesPanel's confirm note readspreview.changes.confirmNotewhen the panel has apackageId(unchanged, byte for byte, in all ten packs) and the newpreview.changes.confirmNoteSeparatewhen it has none.packageIddecides: only a package has a batch door (POST /packages/:id/publish-drafts). The package-less page's Publish (thepackageId === nullbranch ofdoPublishinStudioDesignSurface) callspublishDraftonce per draft and keeps going past a failure, so a partial publish is possible there.packageIdnoronPublish. It renders no confirm footer and does not change.2. A deep-link miss and an empty list show no false "no designers" notice
AutomationsPillarreadgetMetadataPreview(current?.type ?? ''). With no flow open, that read is for the type'', which returns undefined.isEditablewas then false, and the canvas chip renderedengine.studio.auto.designersMissing("No metadata designers are registered in this session…") next to the correct miss sentence.getMetadataPreview('flow'), the pillar's one type, the same way thegetMetadataInspector('flow')read beside it already worked. Nothing changes with a flow open, because every rail entry of this pillar has the typeflow.views/metadata-admin/**is not edited (objectui#10202 holds it). The copy keys already existed.Measured
All at
67dcfcbunless said otherwise.Red before the fix (tests written first, run on the unfixed tree): 15 failed, 41 passed across the 4 pin files. The received strings were:
/studio/~org/automations?surface=flow:showcase_urgent_task_alert(the card's measured URL): the page text held "No metadata designers are registered in this session, so this flow cannot be designed here." beside "The link names flow “showcase_urgent_task_alert”, which is not here."confirmNoteSeparatefamily.Green after the fix:
pnpm exec vitest runon the 4 pin files gave 4 files, 56 of 56 tests passed.Ablations. Each one went through
ablation-replace.mjs, which checks that the anchor hit once and that the blob changed. Each was restored by blob hash withgit diff HEADempty:true): 2 failed, 2 passed. The two package-less cases failed and received the atomic sentence. The two package-sheet controls stayed green.getMetadataPreview(current?.type ?? '')): 3 failed, 18 passed. The failures were the measured miss, the package page's miss and the empty list. The control with a flow open stayed green. So did the empty-registry case, because with no designer registered the notice shows either way, which is the direction expected.Wider runs.
packages/app-shell/src/views/studio-design/andpackages/app-shell/src/preview/: 103 files, 653 tests passed.packages/i18n/, plus every test that reads a changed file as source text: 117 files, 2663 passed and 13 skipped. These tests were found by grepping test sources forreadFileSyncand?raw, and for the namesStudioDesignSurface.tsx,DraftChangesPanel.tsxandlocales/*.ts. They arepackages/app-shell/src/__tests__/,ObjectView.viewConfigGate, the metadata-admin i18n tests,HomeItemTypeLabel.parity,apiErrorEnvelopeand thescripts/__tests__suites for the i18n gates, node-esm-load, eager-closure, eager-locale-catalogues, spec-symbol ledger and derivation, one-authority, vi-mock-inherit, side-effects, self-import and turbo build outputs.Type-check.
pnpm --filter @object-ui/app-shell type-checkandpnpm --filter @object-ui/i18n type-checkboth exited 0. They ran afterpnpm turbo run build --filter='@object-ui/app-shell^...'(28 of 28 tasks). Both test tsconfigs list the new test files; this was checked with--listFilesOnly.Gates, all exit 0. The gates run were:
check:i18n-keys,check:i18n-drift("No en value changed in this range"),check:i18n-dead-keys(the new keys are not candidates) andcheck:i18n-designer-parity;check:control-bytes,check:new-line-citations(0 new) andcheck:changeset-claims;check:pending-changeset-literals,check:test-path-roots,check:vi-mock-inherit,check:vi-mock-override-shapeandcheck:vi-mock-specifiers;check:spec-symbols,check:metadata-write-doors,check:handler-key-reads,check:esm-specifiers,check:unreferenced-sources,check:self-importandcheck:phantom-deps;scripts/check-changeset-presence.mjsandchangeset:check.Lint (narrowed, not the repo-wide run).
eslint --format jsonran on the 16 changed.ts/.tsxfiles; the JSON output has 16 results. It reported 0 errors.2e818d0. The base files were linted in place and then restored by blob hash.eslint.config.jssets noparserOptions.projectand noprojectService, so linting is not type-aware. This diff therefore cannot move a verdict in a file it does not touch.NOT MEASURED (left to CI):
check:eager-closure/check:eager-locale-catalogues: they need a console build. The en pack is in the eager closure, and this adds three en strings.pnpm test(all 8 shards).pnpm lint.Acceptance notes
onecategory also covers 21, 31 and so on, so its one-form avoids "the others" too. ar, ja, ko and zh use one sentence for every count, as theirconfirmNotedoes..changeset/11591-org-flows-copy.md:@object-ui/app-shellpatch,@object-ui/i18npatch.Generated by Claude Code