Skip to content

Keep Library navigation, uploads and rendering coherent under load - #428

Draft
SashaMIT wants to merge 19 commits into
developfrom
fix/review-library-efficiency
Draft

SashaMIT wants to merge 19 commits into
developfrom
fix/review-library-efficiency

Conversation

@SashaMIT

@SashaMIT SashaMIT commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Library keeps selection, focus and menus coherent during rendering and navigation. Explicit selection owns Delete, Enter, F2 and ContextMenu; focus is the fallback when selection is empty. Runtime owns effects.

Chromium smokes check the initial tab order before row focus. Small and chunked text-row fixtures require the first rendered row to be the sole sequential tab stop. Existing keyboard and rendering checks remain.

node scripts/library-menu-smoke.mjs
node scripts/library-performance-smoke.mjs

At prior head 0f6ad1e5, both Chromium smokes and all 45 owned Node tests passed. A boot-reset mutation failed the intended assertion; exact source restoration passed.

The upload slice is in develop; remaining scope covers selection/action routing, collator reuse, navigation, rendering, smokes and the guide. This PR merges #411 at 898ef790 and inherits its bridge work. Merge last: the guide requires #420/#416/#411/#412. Coordinate #425–#427. #441 owns search-hidden selection/Delete; #67 owns Library images/wallpaper and image-heavy evidence.

Candidate: dcdd115acad78201d845c603a107c1c0084b1d86; merged develop: 3a043849e2c91af3fd338def86d1e3a76d74e701. Required local checks: same-head manual recheck just ci-local-prepush and actual unchanged push hook PASS, including 45 Library tests and both Chromium smokes in each gate. The first manual attempt stopped at the base-stability guard after develop moved. Local execution used this candidate tree; compatibility with later develop at 3beb8164 passed the unchanged disjoint-merge guard separately. Hosted CI: PASS, with all 18 jobs successful.

Prior-head Claude review records PASS (A) at 0f6ad1e5. Independent source-continuity review passed: 20 of 21 owned paths are unchanged; justfile adds only develop’s Home Assistant test invocation, with its remaining bytes preserved. The current-head Claude re-review records PASS at dcdd115a; the linked earlier verdict remains historical evidence. When integrating this PR, preserve both its scripts/test-behaviour.sh additions and #420’s additions. Installed Library performance and authority acceptance remain pending.

Review order: #420 → #421 → #424 → #416 → #411 → #412 → #428. #417 owns ZIP remediation. Draft; target develop.

Review package extracted from preserved candidate b0fa431d. The original eighteen commits remain on fix/runtime-performance-080. Validation of this recomposed head is recorded separately from historical candidate evidence.
Review package extracted from preserved candidate b0fa431d. The original eighteen commits remain on fix/runtime-performance-080. Validation of this recomposed head is recorded separately from historical candidate evidence.
@SashaMIT

Copy link
Copy Markdown
Contributor Author

Independent review (Claude) of 589e46a: FAIL. Delete, Enter and F2 act on the focused row instead of the selection: after a Ctrl-click deselect, Delete trashes the deselected item (events.js:308-312; reproduced; develop is correct).
Also: scripts/README.md lines 111-131 and 212-214 describe #412/#416/#411 behaviour that develop does not have yet.

Use the installed System fixture for valid and invalid Home-link requests so the test exercises link authority on every host. Keep all assertions and production launch checks unchanged.

Verified the exact Home-link test passes, reverting only the System token to Browser fails the intended 403-versus-200 assertion, and restoring the fixture passes again.

Co-authored-by: Codex
Reuse the published Browser bridge prerequisite and its platform-neutral Home-link fixture so Library tests cover the current develop integration. Preserve all Library-owned paths byte-for-byte and retain both branch histories.

Co-authored-by: Codex
@andersalm andersalm mentioned this pull request Oct 17, 2026
9 tasks
@SashaMIT

Copy link
Copy Markdown
Contributor Author

Review at a2c2215: PASS (B+). Selection fix and collator proven; both Library smokes fixed; 18/18 CI green.
Trial merge of all 7 conflicts only in test-behaviour.sh/.test.mjs, as predicted.

@andersalm

Copy link
Copy Markdown
Contributor

For 0.8.0: OMP took only this PR's upload fix into the release candidate, unchanged: the capsules/library/browser/src/actions.js upload hunk and actions-upload.test.mjs from a2c221522, as commit 0dbba668b on release/train-0.8.0-rc8. On the candidate, navigating during a multi-file upload sent the remaining files to the new folder, where same-named files were replaced. Your test fails 5 of 6 on the old code and passes 6 of 6 with the fix; Codex reviewed it (PASS). The rest of #428 stays after 0.8.0. When it merges, the upload hunk will already be identical on develop.

andersalm added a commit that referenced this pull request Oct 18, 2026
…from #428)

uploadFiles built each file's destination from the folder open when
that file began, so navigating during a multi-file upload sent the rest
to the new folder, where a same-named file was replaced. The batch now
binds its destination at start and keeps its own rows, so overlapping
batches no longer share progress or cleanup.

Cherry-picked unchanged from SashaMIT's #428 at a2c2215 (actions.js
hunk and actions-upload.test.mjs only).
@SashaMIT

Copy link
Copy Markdown
Contributor Author

Round 6 at 0a9b04d: PASS (A-). #441 opened; the seven-PR stack merges with only the known test-runner union; 1,928 behaviour tests pass.
Merge last. Optional: add a tab-stop check before any row has focus.

Assert the initial sole row tab stop in small and chunked fixtures before any focus handler can repair it.

Co-authored-by: Codex

Copy link
Copy Markdown
Contributor Author

Updated head: 0f6ad1e5e1580b4a5a8020a1478541e57ef22081.
Unchanged manual and push-hook gates passed; the initial tab-stop control failed as intended and passed after restoration.
CI has started: https://github.com/Elacity/elastos-runtime/actions/runs/39144900918

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Independent review (Claude) at 0f6ad1e: PASS (A). Small and chunked folders now check for exactly one row tab stop before any row has focus.
Both Chromium smokes pass; removing or duplicating the initial tab stop fails the new assertion. CI green.

Preserve the reviewed behavior and integrate the verified base through the named parent.

Co-authored-by: Codex
Preserve the reviewed behavior and integrate the verified base through the named parent.

Co-authored-by: Codex

Copy link
Copy Markdown
Contributor Author

Updated head: dcdd115acad78201d845c603a107c1c0084b1d86.
Manual recheck just ci-local-prepush and the actual unchanged push hook: PASS, including 45 Library tests and both Chromium smokes in each gate.
CI has started: https://github.com/Elacity/elastos-runtime/actions/runs/39262380409. Current-head source-continuity review: PASS; Claude PASS (A) remains at prior 0f6ad1e5, with new-head review pending.

@SashaMIT

Copy link
Copy Markdown
Contributor Author

Re-review (Claude) at dcdd115: PASS (A carried). One clean merge of #411; own patch unchanged.
CI run 39262380409 was still running at review time; the test-behaviour union with #420 is still needed in the chain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants