Skip to content

Notebook rework 1: one column, no inner scroll box, every channel in the quick scan; Compare groups in the run step - #275

Merged
guijacquemet merged 8 commits into
mainfrom
claude/rework-1-layout
Nov 10, 2026
Merged

guijacquemet merged 8 commits into
mainfrom
claude/rework-1-layout

Conversation

@guijacquemet

Copy link
Copy Markdown
Contributor

Replaces #273 (kept: the compact style, About this step, the Folders card, the collapsed Compare groups panel in the run step, the one-line welcome(); removed: what the owner's test of that redesign rejected). Stacked: the 7-step flow is the next PR, on top of this one.

Owner's test of the first redesign (10 November 2026): "scrolling in its own box is annoying and not better"; always a single column; the quick-scan image shows all channels.

What changes

  • The page scrolls as a whole. The step body has no fixed height and no scroll bar of its own; in the stepper, tables and file lists no longer scroll vertically inside their box either (.mb-compact .mb-table-wrap, .mb-paths, the per-folder picture rows). A step is short only because it says less, folds details and draws smaller pictures.
  • One column everywhere. The scan's pictures sit above its folders (was: side by side); Scan the folders, its result, then Looks right: read all image headers are one under the other; the axes step is roles (one row per dimension: what the file has, its role, what the role does), then the example, then the pixel size. A test walks every page of the stepper and refuses a row holding cards or panels.
  • The quick scan shows every channel of its one image side by side across the page, each with its own contrast and a c= label, when that image's header names a channel axis (header_preview.header_channels): up to 6; with 7 or more, 6 and the line "6 of N channels shown". Display only, read from that one image (bound to its fingerprint, within the caps of the header pictures). A header that names no channel axis gets the one picture as before: no channel is guessed from a shape.
  • The scan lists the conditions in a short table (every folder under All N folders).
  • From Notebook redesign 4: each step fits a laptop screen; Compare groups in the run step #273, unchanged: the compact style, explanations folded under About this step, one-sentence refusals with the files on demand, the run step's collapsed panels and Compare groups (the optional statistics page is not shown by the shipped notebook; results_step() after steps() returns an empty hidden box).

Layout only: no answer, check, refusal, draft, description or run output changes. tests/test_embedding_api.py is untouched and passes. The stacked pages other bricks embed (folder_step, axis_step) get the one-column axes layout (roles, example, named-axis copies card, then confirm); nothing else changes for them.

Checks

  • python tools/check.py on 109588f: 5254 passed, 4 skipped (the 4 environment skips: case-insensitive file system ×3, permissions that ignore file modes), Ruff and the code rules clean.
  • Screenshots of every state before (main b9f1408) and after are in the session scratchpad (rework-shots/before, rework-shots/after), at 1366×768 and 1920×1080.

Generated by Claude Code

…tep; the app in short in the guide

Owner test of v0.5.0 (10 November 2026), items (a) and (b).

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
…n's picture keeps its size

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
…compact

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
…laude/redesign-4-compact

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
…hows every channel

Owner's test of the first redesign (10 November 2026):
- the step body no longer scrolls on its own, nor do tables and file lists in the stepper:
  the page scrolls as a whole;
- always one column: the scan's pictures above its folders, the two buttons of step 1 one
  under the other, the axes step as roles, example, pixel size (one row per dimension);
- the quick scan draws every channel of its one image side by side (own contrast, c= labels)
  when that image's header names a channel axis, up to 6, and says '6 of N channels shown'
  beyond; display only, read from that one image.

Layout only: no answer, check, refusal or output changes.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc

Copy link
Copy Markdown
Contributor Author

Main (f71e62f, #274) is merged in; the head is 5793366.


Generated by Claude Code

The single-column walk looked only at HBox rows holding a card directly, so
cards side by side in a GridBox (main's axes step) or wrapped in a VBox were
not found. The new test fails with the earlier helper.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
… that scrolls

The stepper's run step held the log in a 14em read-only Textarea, a box with
its own scroll bar (owner's test of the redesign: the page scrolls, nothing
inside it). In the stepper the fold now shows the same log as wrapped text;
the stacked run_step() is unchanged. Regression test fails before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc

Copy link
Copy Markdown
Contributor Author

Independent review of #275 and #276, then merge.

Fixes on this branch, one commit each, each with a regression test that fails without the fix:

  • 70b9ee6: the single-column test only looked for an HBox holding a card directly. Cards side by side in a GridBox (the axes step on main) or wrapped in another box were not found, so the test would also have passed on main. It now checks HBox and GridBox rows, including cards nested deeper.
  • a061921: the run step's "Technical details (log)" was a read-only Textarea, 14em high, which scrolls inside its own box. In the stepper the fold now shows the same log as wrapped text. The stacked run_step() is unchanged.

Checks:

  • Same answers give the same bytes. I wrote my own synthetic data and scripts and ran them on main f71e62f, on 5793366 and on a061921:
    • (A) 3 channels, masks, a per-folder pixel size, one comparison;
    • (B) RGB images, 3 conditions, no masks, no comparisons.
    • morphobricks.toml, experiment_design.csv, plane_histograms.csv, calibration.csv, mask_relationships.json and mask_representation.json are byte-identical. run_manifest.json differs only in written_at, and discovery_report.* only in the manifest hash and the output path.
  • Layout: the stepper on main had cards in a GridBox on the axes step. On this branch the only rows left are the strip of channel pictures.
  • tests/test_embedding_api.py, tests/test_spec_*.py and tools/ are unmodified.
  • CI is 7/7 on a061921. The full gate on the top of the stack is on Notebook rework 2: seven steps (Images, Axes, Channels, Masks, Design, Check and save, Run) #276.

🤖 Generated with Claude Code

https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc


Generated by Claude Code

@guijacquemet
guijacquemet merged commit e858fa2 into main Nov 10, 2026
7 checks passed
@guijacquemet
guijacquemet deleted the claude/rework-1-layout branch November 10, 2026 22:43
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.

2 participants