feat(config): turn the Form View on by default - #8528
Open
yangzhang75 wants to merge 1 commit into
Open
yangzhang75 wants to merge 1 commit into
yangzhang75 wants to merge 1 commit into
Conversation
Contributor
Automated Reviewer SuggestionsBased on the
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8528 +/- ##
=========================================
Coverage 95.90% 95.90%
Complexity 459 459
=========================================
Files 589 589
Lines 33953 33953
Branches 4246 4246
=========================================
Hits 32564 32564
Misses 811 811
Partials 578 578
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
|
| config | throughput | MB/s | latency | max Δ latest / 7d | |
|---|---|---|---|---|---|
| 🔴 | bs=10 sw=10 sl=64 | 426 | 0.26 | 22,708/27,974/27,974 us | 🟢 -17.7% / 🔴 +91.2% |
| ⚪ | bs=100 sw=10 sl=64 | 954 | 0.582 | 105,563/117,833/117,833 us | ⚪ within ±5% / 🔴 +18.4% |
| 🟢 | bs=1000 sw=10 sl=64 | 1,092 | 0.666 | 917,404/970,561/970,561 us | 🟢 -6.3% / ⚪ within ±5% |
Baseline details
Latest main 5042d96 from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---|---|---|---|---|
| bs=10 sw=10 sl=64 | throughput | 426 tuples/sec | 448 tuples/sec | 838.23 tuples/sec | -4.9% | -49.2% |
| bs=10 sw=10 sl=64 | MB/s | 0.26 MB/s | 0.274 MB/s | 0.512 MB/s | -5.1% | -49.2% |
| bs=10 sw=10 sl=64 | p50 | 22,708 us | 19,650 us | 11,878 us | +15.6% | +91.2% |
| bs=10 sw=10 sl=64 | p95 | 27,974 us | 33,984 us | 14,690 us | -17.7% | +90.4% |
| bs=10 sw=10 sl=64 | p99 | 27,974 us | 33,984 us | 18,483 us | -17.7% | +51.4% |
| bs=100 sw=10 sl=64 | throughput | 954 tuples/sec | 960 tuples/sec | 1,095 tuples/sec | -0.6% | -12.9% |
| bs=100 sw=10 sl=64 | MB/s | 0.582 MB/s | 0.586 MB/s | 0.668 MB/s | -0.7% | -12.9% |
| bs=100 sw=10 sl=64 | p50 | 105,563 us | 104,682 us | 92,901 us | +0.8% | +13.6% |
| bs=100 sw=10 sl=64 | p95 | 117,833 us | 114,751 us | 99,480 us | +2.7% | +18.4% |
| bs=100 sw=10 sl=64 | p99 | 117,833 us | 114,751 us | 112,580 us | +2.7% | +4.7% |
| bs=1000 sw=10 sl=64 | throughput | 1,092 tuples/sec | 1,110 tuples/sec | 1,126 tuples/sec | -1.6% | -3.0% |
| bs=1000 sw=10 sl=64 | MB/s | 0.666 MB/s | 0.678 MB/s | 0.687 MB/s | -1.8% | -3.1% |
| bs=1000 sw=10 sl=64 | p50 | 917,404 us | 891,479 us | 912,010 us | +2.9% | +0.6% |
| bs=1000 sw=10 sl=64 | p95 | 970,561 us | 1,035,408 us | 950,922 us | -6.3% | +2.1% |
| bs=1000 sw=10 sl=64 | p99 | 970,561 us | 1,035,408 us | 983,333 us | -6.3% | -1.3% |
Raw CSV
config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,469.44,200,128000,426,0.260,22707.62,27973.83,27973.83
1,100,10,64,20,2095.71,2000,1280000,954,0.582,105563.11,117832.91,117832.91
2,1000,10,64,20,18317.64,20000,12800000,1092,0.666,917404.45,970561.44,970561.44
yangzhang75
force-pushed
the
formview-pr17
branch
from
September 13, 2026 06:29
f14616d to
859b50f
Compare
yangzhang75
force-pushed
the
formview-pr17
branch
2 times, most recently
from
September 13, 2026 23:36
32f93aa to
e1a0c0a
Compare
This was referenced Sep 13, 2026
renovate-bot
pushed a commit
to renovate-bot/apache-_-texera
that referenced
this pull request
Sep 13, 2026
### What changes were proposed in this PR? Closes apache#8028. Part of the Form View stack (parent issue apache#8011), on main now that apache#8516 and apache#8517 have merged. The review commit is the branch's single commit. Wires the Form View entry points. The flag stays off here; the stack's closing PR, apache#8528, flips it. - The dashboard opens a workflow in its `default_view` (form or canvas), with a toggle that persists the choice; the deep link goes to the existing `/workflow/:id/form` route. Both renderers of the dashboard, the list row and the card, follow one shared rule (`default-view-landing.ts`: mark, deep link, toggle), so switching the view mode does not lose the entry point. The toggle is offered only with WRITE access, which the endpoint requires, and the handler checks the same rule rather than trusting the template; it is a proper toggle button (constant accessible name, state in `aria-pressed`, the hover title spelling out what a click does); hub links are left untouched. - The canvas menu gains the same Canvas / Form View switch the form already shows, so the two views swap in place. It saves first and hands over only once the save has completed: the switch is a full-page load, which aborts a request still in flight. Two more things the hand-over must not lose: an autosave already in flight when the switch is clicked (`WorkflowPersistService` now sends saves one at a time and in call order, at the one place every save goes through, so the switch's save lands and completes after it; each caller still gets only its own result and a failed save does not hold up the next), and an edit made while the switch's save is out (the page stays editable until the load; `workflowChanged` marks it and the hand-over saves once more before leaving). A reader, who cannot save, goes straight over. A workflow the canvas holds but has never saved (the default id) is created by that save, and the hand-over opens the id the save answered with. On the card the toggle sits in the always-visible action footer, in the same slot as on the row (right after Detail); the row's hover-revealed action group also appears while the row has the keyboard focus, so the toggle can be reached without a pointer there too. A second click while the hand-over is in progress is a no-op. A failed save keeps the user on the canvas with the error shown. Every workflow offers both views whenever the flag is on: `default_view` only decides the landing view, and neither view gates the other. - Download/upload round-trips `defaultView` as a sibling key next to the workflow content, in one shared export shape (`exportedWorkflow`) used by the dashboard download and the canvas menu's export alike; an old export without the key imports unchanged. - The computing unit the user picks is remembered per workflow (localStorage) so it survives switching between the two views; a unit selected on load (the remembered one, the last execution's, a running one) is derived rather than chosen and is not stored, or a derived unit would later outrank a fresher last execution. On load the remembered unit is honoured only once the unit list has arrived and still holds it: a unit that has since been terminated is forgotten and the last execution's unit is used instead, and a decision still pending when the workflow changes underneath it is dropped (the remembered-unit check, the last-execution lookup and its running-unit fallback alike). ### Any related issues, documentation, discussions? Closes apache#8028. Part of the Form View feature (parent issue apache#8011). ### How was this PR tested? Unit tests (vitest) cover the menu's Canvas / Form View switch through the DOM (absent with the flag off, Canvas pressed, Form View handing over, hidden while an older version is displayed), the row's and the card's default-view behavior (mark and deep link, hub link untouched, flag off leaves the dashboard as today, WRITE-only toggle in the DOM, toggle on / off / failed request / no cached row), the menu switch (navigates only once the save completes, stays on the canvas with the error when it fails, saves once more when an edit lands while its save is out, takes a reader straight over without a save, ignores a second click mid hand-over), the canvas export carrying `defaultView` next to the content and omitting it when unset, the hand-over opening the id the save assigned when the canvas held a never-saved workflow, the persist service sending saves one at a time in order with each caller getting its own result and a failure not holding up the next, the dashboard toggle handlers refusing without WRITE access, the toggle's aria-pressed following the state, the export/import round-trip including a legacy file without `defaultView`, and the computing-unit recall (waits for the first non-empty unit list, forgets a terminated unit and falls back, drops a stale decision after the workflow changed, a late last-execution answer or fallback included, positive-integer validation, storage failures, only an explicit pick remembered). Each new guard was deletion-checked (removing it turns the corresponding test red). eslint, prettier and the production (AOT) build pass; every changed line, template lines included, is statement and function covered. #### Video ##### 1. Default view on the dashboard (row and card toggle, Form View icon, deep link into the form, toggle off again, no toggle without write access) https://github.com/user-attachments/assets/04f71ba5-27ad-489d-a5be-51cdd8d811aa ##### 2. Canvas / Form View switch (save first, then the hand-over; and back) https://github.com/user-attachments/assets/39c3d395-6329-403d-9719-ca7ef179889f ##### 3. Computing unit remembered across the switch https://github.com/user-attachments/assets/6fe70b5f-d936-4333-bcf0-b3fa44f84323 ##### 4. Download / upload keeps the default view https://github.com/user-attachments/assets/0519bfcd-0677-478f-866c-6eb0350d842c ##### 5. Default view on the card view (the same toggle in the card's action row, Form View icon, deep link into the form) https://github.com/user-attachments/assets/471192b3-7935-4da9-be87-fa08a7dd6c13 ### Was this PR authored or co-authored using generative AI tooling? Yes. Generated-by: Claude Code (Claude Fable 5.1, Anthropic). Co-authored with Claude, reviewed line by line by the author before submission. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01FVvP3ttj22f9LB4p9u2anY Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Every piece of the Form View (parent issue apache#8011) has landed behind form-view-enabled = false. Flip the default to true, with the GuiConfigSpec assertion updated to match. GUI_WORKFLOW_WORKSPACE_FORM_VIEW_ENABLED=false turns it off for a deployment. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FVvP3ttj22f9LB4p9u2anY
yangzhang75
force-pushed
the
formview-pr17
branch
from
September 14, 2026 00:20
e1a0c0a to
a3c3639
Compare
yangzhang75
marked this pull request as ready for review
September 14, 2026 00:20
6 tasks
yangzhang75
added a commit
to yangzhang75/texera
that referenced
this pull request
Sep 15, 2026
The eyeserver deployment is the Form View: a biologist opens a workflow's form, picks their data and runs it. Upstream ships the flag off until the rollout PR (apache#8528) flips it, so this branch turns it on and the config spec asserts that. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FVvP3ttj22f9LB4p9u2anY
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 changes were proposed in this PR?
Closes #8537. The closing PR of the Form View stack (parent issue #8011). Every piece of the feature has landed behind
form-view-enabled = false; this flips the default to true, with the GuiConfigSpec assertion updated to match. Nothing else changes. A deployment that wants the feature off setsGUI_WORKFLOW_WORKSPACE_FORM_VIEW_ENABLED=false, which the config already reads.On main now that #8456 (the entry points) has merged; the branch's single commit is the whole change.
Any related issues, documentation, discussions?
Closes #8537. Part of the Form View feature (parent issue #8011).
How was this PR tested?
GuiConfigSpec asserts the new default. The frontend specs that exercise the entry points already run with the flag on (the shared config mock defaults it off and each such spec enables it), so they are unaffected by the default.
Was this PR authored or co-authored using generative AI tooling?
Co-authored with Claude Code.
🤖 Generated with Claude Code
https://claude.ai/code/session_01FVvP3ttj22f9LB4p9u2anY