feat(automation): declarative screen-flow completion/error messages + action errorMessage#1990
Merged
Merged
Conversation
… action errorMessage - FlowSchema gains `successMessage` / `errorMessage`; the engine attaches them to the terminal AutomationResult (success → successMessage, failure → errorMessage) so a screen-flow runner shows a meaningful toast instead of "Done"/raw error. - AutomationResult contract gains `successMessage` / `errorMessage`. - UI Action schema gains `errorMessage` (runtime already honoured it — closes a spec↔runtime gap). - CRM convert-lead wizard declares a friendly completion + error message. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
📓 Docs Drift CheckThis PR changes 2 package(s): 91 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
os-zhuang
added a commit
that referenced
this pull request
Jun 17, 2026
…#1992 Pre-existing red on the spec-liveness gate (not from this branch's timezone change): #1990 added flow.successMessage/errorMessage + action.errorMessage and #1992 added action.undoable, none classified in the ledgers. - flow.successMessage → live (service-automation/src/engine.ts:1292) - flow.errorMessage → live (service-automation/src/engine.ts:1348) - action.errorMessage → live (objectui toast, error counterpart of successMessage) - action.undoable → experimental: declared + demoed in #1992 but no runtime reader yet in framework or objectui (objectui has an UndoManager but does not key off the action's `undoable` flag). Promote to live once a consumer lands. Greens the liveness gate (was red on main too). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
os-zhuang
added a commit
that referenced
this pull request
Jun 17, 2026
) * feat(runtime): resolve reference timezone onto ExecutionContext (#1978) ADR-0053 Phase 2 foundation. Adds `ExecutionContext.timezone` (optional IANA zone) and resolves it once per request in resolveExecutionContext, precedence user preference -> org default -> UTC: - user override: sys_user_preference (user_id, key='timezone') - org default: tenant-scoped sys_setting (namespace='localization', key='timezone', scope='tenant') — one org per physical tenant (ADR-0002), so no tenant_id filter - invalid IANA zone ignored, falls through; every read defensive via tryFind, never blocks auth Pure plumbing, no behavior change: nothing reads ctx.timezone yet and an absent value resolves to UTC (today's behavior). Foundation consumed by the rest of Phase 2 — tz-aware today()/daysFromNow() (#1980), datetime rendering (#1981), analytics bucketing (#1982). A discoverable `localization` settings manifest for the org default is a follow-up; the resolver already reads the row if present. Tests: user pref > org default > UTC; invalid zone falls through; anonymous leaves it unset. Runtime suite green (387), spec kernel green (682). Closes #1978. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(spec): classify 4 liveness properties left unclassified by #1990/#1992 Pre-existing red on the spec-liveness gate (not from this branch's timezone change): #1990 added flow.successMessage/errorMessage + action.errorMessage and #1992 added action.undoable, none classified in the ledgers. - flow.successMessage → live (service-automation/src/engine.ts:1292) - flow.errorMessage → live (service-automation/src/engine.ts:1348) - action.errorMessage → live (objectui toast, error counterpart of successMessage) - action.undoable → experimental: declared + demoed in #1992 but no runtime reader yet in framework or objectui (objectui has an UndoManager but does not key off the action's `undoable` flag). Promote to live once a consumer lands. Greens the liveness gate (was red on main too). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
os-zhuang
added a commit
that referenced
this pull request
Jun 25, 2026
feat(identity): align client user-context with ADR-0068 (#1990) objectui@a3a5abff8c75d0629c3abe520dbe448edace3155
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.
What
Two action/flow UX improvements surfaced while building the lead-conversion wizard.
1. Declarative screen-flow completion / error messages
A
screenflow can now declaresuccessMessage/errorMessage(FlowSchema). The engine attaches them to the terminalAutomationResult(successMessageon success,errorMessageon failure), so the UI flow-runner shows a meaningful toast instead of a generic "Done" / the raw error — no manual terminal "success screen" node required. The CRMconvert-leadwizard declares a friendly completion message ("🎉 Lead converted — customer and opportunity created.").2. Action
errorMessage(spec↔runtime gap)The objectui
ActionRunneralready honouredaction.errorMessage, but it wasn't declarable in the spec. Added to the UI Action schema so authors can set a friendly failure toast instead of surfacing the raw error.Changes
FlowSchema.successMessage/errorMessage;AutomationResult.successMessage/errorMessage;Action.errorMessage.convert-leadwizard declares completion + error messages.Verification
Browser E2E (console + app-crm): completing the convert-lead wizard now shows the custom "🎉 Lead converted…" toast (not "Done").
app-crmsmoke test (29) passes;spec+service-automationbuild clean (DTS). Pairs with the objectui companion PR.🤖 Generated with Claude Code