Repository navigation
client: open a failed workflow run on the Workflows page - #2516
Conversation
…b#2515) The Inbox row asked Settings for the page 'workflow', but the page key is 'workflows', so the dialog silently fell back to General: the Open action landed on General instead of Workflow graphs. The test now renders the Settings dialog and reads the current page off the nav, instead of asserting the string the call carried, which could not tell the two keys apart.
18bc684 to
16f743d
Compare
|
Ready for the queue at Gates read on this tree:
Red-first on the clean base Generated surface: Check runs at this tip: 17 success + 0 cancelled. |
Fixes #2515
Owner: Dev-1
Reviewer: Birfy
Written-by: FlyBot Dev-1
Claim-Id: 18640dfec1ed471c81d1d7ab34b72512
Risk tier: T1
Base: d1ea853
What changed
In a read-only Inbox a failed workflow run has no chat to land in, so its row offers Open. That Open landed on Settings → General: the row asked Settings for a page named
workflow, but the page keySETTINGS_PAGESlists isworkflows(core/src/client/settings.js), and the dialog resolves an unknown key togeneralwithout an error. The reader had to find the Workflows page themselves, then find the graph among the others.After: the row asks for
workflowsand lands on the Workflows page. Nothing else about the row changes — no chat, no answer control, no per-graph deep link (still out of scope, as the issue says).The test could not catch this because it asserted the argument the call carried (
['close', 'settings workflow']), which pinned the wrong string in place; nothing rendered the dialog. It now rendersSettingsDialogand reads the current page off the nav'saria-current="page", and keeps a "not General" negative assertion so the old landing stays named.docs/subsystems/core-client.mdrepeated the singular call and now states the page key Settings actually lists.Hand-written files:
core/src/client/inbox.js(the one page key, plus a comment saying Settings falls back to General for a key it does not list),core/test/inbox-workflow-failure.test.js,docs/subsystems/core-client.md,changelog.d/2515-inbox-workflow-open-page.fixed.md.core/client.jsandpatches/ds-bot/*are regenerated, never hand-edited:node scripts/build-client.mjs, thennode scripts/ds-bot-patches.mjs generate— the regenerated bundle differs from the base by that one word only, so there is no other drift.Verification at the tip
Tip SHA: 16f743d (tree 33283f688a4ee0dd0abf50891d7e7dd03448baec), pushed from local 773f9759… — same tree, the push path re-commits.
Ran:
d1ea853ctree with onlycore/test/inbox-workflow-failure.test.jstaken from this branch:# tests 8 / # pass 7 / # fail 1; the red one isnot ok 7 - #1706: a workflow row has no chat, opens the Workflow graphs page, and answers nothingwithexpected: [ 'Workflows' ] / actual: [ 'General' ].inbox.js's one word turns the same test red again (# tests 8 / # pass 7 / # fail 1); restoring it leavesgit statusclean.TZ=UTC ARCH_DOCS_BASE=d1ea853c… npm run verify→ exit 0: core 2927/2927, social 577, tree 137, timeline 141, workflow 440,.github+ policy 671, interop 37, live-e2e 26; lint,arch-docs: OK (8 changed file(s)),build-client --check,ds-bot-patches check(three ok) andcanonical(generate is a no-op) all green.git diff --numstat d1ea853c...HEAD— 8 files, +164/−9:generateran on this tree,git status --porcelainis empty andbuild-client --checkexits 0, so the committed bundle and patches are exactly what the generators produce from this source.Not run (and why): the two-Bot live smoke, which needs a running instance; the landing page here is covered by the rendered component test above.
Ready for the queue at this tip; the branch stays frozen while queued.
Checkpoint
{ "pr": 2516, "claim": "Dev-1", "issue": 2515, "summary": "In the Inbox a failed workflow run's Open asked Settings for the page 'workflow', but the page key is 'workflows', so the dialog silently fell back to General instead of the Workflow graphs page. The row now asks for 'workflows', and the test renders SettingsDialog and reads the current page from the nav's aria-current=\"page\" (keeping a not-General negative assertion) instead of asserting the argument the call carried, which pinned the wrong string in place. core/client.js and the patches are regenerated from that source, not hand-edited.", "files": ["core/src/client/inbox.js", "core/test/inbox-workflow-failure.test.js", "docs/subsystems/core-client.md", "changelog.d/2515-inbox-workflow-open-page.fixed.md", "core/client.js", "patches/ds-bot/0008-client-bundle.patch", "patches/ds-bot/files/src/client/inbox.js", "patches/ds-bot/files/test/inbox-workflow-failure.test.js"], "checks": { "ran": "failing test first on clean d1ea853c (8 tests, 1 red: expected ['Workflows'] / actual ['General']); revert-one-word counter-proof red again; TZ=UTC ARCH_DOCS_BASE=d1ea853c npm run verify exit 0 (core 2927/2927); build-client --check; ds-bot-patches check + canonical; generate no-op", "result": "green", "at": "16f743d93802e8b2a1c86d37f73324f6a979ab11" }, "next": "none — ready for the queue at this tip; the branch stays frozen while queued" }