Skip to content

Improve chart editing, review workflows and plotting APIs - #23

Open
shim9610 wants to merge 23 commits into
mainfrom
codex/layout-area-editing
Open

shim9610 wants to merge 23 commits into
mainfrom
codex/layout-area-editing

Conversation

@shim9610

@shim9610 shim9610 commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Chart construction and editing now use familiar public objects while preserving scientific data, accepted appearance and human feedback across Python, native windows and Jupyter.

Changes

  • Add Matplotlib-shaped Figure, Axes, Axis, Text, Spine, Legend and Artist controls, point-based units, tuple/descending Cartesian limits, locators/formatters and stable artist lookup. Resident line artists can gain markers without reconstructing or uploading data. Scatter sizes represent point areas, and explicit colors remain distinct from scalar mappings.

  • Export public object calls for supported appearance, including marker/error palettes and sparse overrides, bins, mapped source references, fields, vectors, contours, polar projections, rich legends, annotations and secondary axes. Preserve accepted tick spacing and automatic/fixed/implicit policies through replay. Exact recovery preserves complete snapshots, including explicit white backgrounds.

  • Show explicitly requested colorbar labels by default. Shared native/kernel helpers use the renderer's painted text bounds to separate unpositioned labels from ticks. Colormap and norm edits remain connected to their mappable. Unsupported categorical manual limits fail at the public boundary without partial edits or nonexistent-field errors.

  • Provide direct object selection, named grids, panel/plot geometry and annotation controls in native and notebook editors. Polar/radar wheel zoom is disabled. Typing and dragging retain cached chart work and edit history.

  • Preserve notebook form drafts across delayed acknowledgements and Python notifications, retrying only edits whose actual SSOT fields and ownership remain unchanged. Style transactions support nested rollback and stale-revision checks. Copy Python waits for accepted edits; auxiliary code-export errors retain the chart and supply exact recovery with diagnostics.

  • Preserve manual work alongside explicit review sessions. Durable feedback includes Windows lock retries, approval reuse, separate finish intent, summary/detail queries, target-specific comments and image references. The shipped review skill prefers public authoring APIs and exact retained-edit verification.

  • Add portable appearance tokens, process-local declarations, temporary scopes and Figure defaults. Profiles and semantic roles style subsequent objects while text content, coordinate scales and layout topology remain opt-in.

  • Unify plot/overlay/colorbar tick translation, color-domain updates and series-to-panel lookup. Edit each detached snapshot once, retain rollback/isolation, and eliminate temporary Figures from colorbar editing. Resolve linked groups and weighted grid placement in linear membership/size work. Reject grid options on colorbars instead of silently discarding them.

Validation

  • Add 40 regression cases and 10 real native/Jupyter cases for label visibility and separation, supported limit guards, complete SSOT replay, logarithmic tick policy, actual wheel behavior and destination arrays read through native GPU selection/browser transfer bytes. Thirty-two applicable regression cases fail against the frozen unfixed wheel.

  • Re-run six independent public-data analyses: 2,603 observations and 22 final scenes. Public and exact replay both preserve full SSOT and native pixels in all 22 scenes, without column reuploads. Independently recalculated numerical checks pass.

  • The current wheel's 37 Python modules match the source. Local workflow/assets preflight passes all 135 cases; Rust formatting and native/notebook change pairing pass.

  • GitHub CI #82 passed every job for a395f81: 1,712 integration cases across four disjoint shards (428 each). The execution audit reports omitted=0, duplicates=0, nonpassing=0; Linux wheel, workflow/assets and Windows review-storage checks also passed.

  • This update adds 29 wrapper regression cases. Installed-wheel targeted checks pass 839 cases, actual native/Jupyter checks pass 10, and preflight passes 135. The frozen baseline fails 23 new improvement checks and passes six preservation checks. The same commit's complete CI result is recorded above.

Evidence: docs/measurements/wrapper-edit-paths-20261028.json, docs/measurements/blind-api-regressions-20261028.json, docs/measurements/public-appearance-api-20261028.json, docs/measurements/matplotlib-api-20261028.json, docs/measurements/compact-codegen-20261028.json, docs/measurements/blind-api-findings-20261028.json and docs/measurements/api-composition-20261027.json.

API scope: docs/MATPLOTLIB_API.md, docs/STYLE_TOKENS.md and docs/CHART_TYPES.md. This is a documented Matplotlib subset. Renderer 0.18.1 does not expose manual categorical ranges; those calls are guarded. Native editor state without an authoring equivalent retains an explicit exact recovery path.

Validation uses Linux software GPUs and actual X11/Jupyter hosts; it does not establish Windows GUI behavior or physical-GPU performance. Publication profiles provide appearance guidance rather than journal certification. This PR does not publish a release.

The appearance evidence records a software-OpenGL limitation where the first panel can be omitted. That calibration and minimal reproduction remain available; this validation uses Vulkan and does not claim an OpenGL renderer fix.

@shim9610
shim9610 marked this pull request as ready for review October 22, 2026 13:17
@shim9610 shim9610 changed the title Improve plot layout editing and targeted review feedback Improve plot editing and durable review workflows Oct 22, 2026
Normalize reference images into durable comment attachments across native and notebook review editors. Keep chart-stage focus outlines beneath floating review dialogs and retain existing text input, recovery and manual workflows.

Validation: 154 focused review, storage, schema, asset and execution checks passed; all 9 native popup and typing cases passed on a fresh X11 display; cargo fmt --check passed.
Capture and replay portable appearance with explicit scale and wording opt-in. Add execution-local style declarations, Figure defaults, construction-time inheritance and explicit argument precedence while preserving existing accepted edits.

Provide fourteen documented task profiles alongside six legacy presets, light/dark and density variants, stable category keys, semantic roles and encoding-capacity warnings. Include source guidance, measured contrasts and a reproducible native gallery.

Validation: 657 style, chart and Python API regression cases passed across native and notebook models; all fourteen task profiles rendered natively. Python 3.8 syntax and git diff checks passed.
@shim9610 shim9610 changed the title Improve plot editing and durable review workflows Improve chart editing, durable review workflows and reusable styles Oct 26, 2026
Declare jsonschema in the test extra so the release functional job can collect review tests without depending on the PR job installing JupyterLab. Bump the package, lockfile and manual publication default to the unused 0.4.0 version and align installation/publication documentation.

Validation: build a real 0.4.0 native wheel and sdist with strict Twine and source-integrity checks; install only wheel[test] in a fresh environment and pass the installed package smoke check plus all 72 review cases. All 134 release/workflow regression cases, actionlint, Rust formatting and whitespace checks pass.
Restore only explicit nested style leaves, preserve existing colorbar appearance through a shared mapped-series update path, and resolve all inherited grid rectangles from one accepted layout. Serialize style disablement and construction so a completed series addition cannot raise a stale-style exception.

Add 33 API composition regressions and a native/Jupyter scene that checks displayed signal/field pixels as well as complete model geometry and retained edits. The installed baseline fails 25 of the 33 cases; the fixed installed wheel passes all 785 API/chart cases. Additional validation passes 244 review/history/selection cases, 12 actual native/Jupyter cases, 134 release/workflow cases and strict wheel/sdist source integrity checks. The content oracle also rejects a Ready-but-black negative control.
@shim9610 shim9610 changed the title Improve chart editing, durable review workflows and reusable styles Improve chart editing, review workflows and plotting APIs Oct 28, 2026

This branch has not been deployed

No deployments
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.

1 participant