You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* fix(audit-r2): close 4 remaining swarm-audit findings (F4/F8/F9/F15)
F4 — remove dead extrapolation controls. richardson_p / levin_order /
levin_weight / levin_beta were collected from both UIs, serialized into the
payload and persisted to workspaces, but mpmath's mp.richardson(seq) and
mp.levin(variant) accept no such parameters, so the compute layer silently
ignored them. Removed the controls end-to-end (desktop views/window/mixin/
workers_core/workspace_controller, datalab_core builder, web logic, the
ExtrapolationOptions dataclass, shared ui_specs, and help_specs.json), keeping
the one Levin knob the backend honors — levin_variant. The richardson page and
the emptied levin section stay as layout-parity stack pages, matching the
existing shanks/wynn (fields=[]) convention.
F8 — update_payload._urlopen now verifies HTTPS with certifi's CA bundle
(ssl.create_default_context(cafile=certifi.where())), mirroring
update_checker._urlopen. On frozen builds whose default OpenSSL context has no
system CA store the check path could advertise an update the download path
could never fetch.
F9 — install_tinytex.sh rejects a non-https TINYTEX_INSTALLER_URL (the script
is downloaded and executed, so http is remote code execution) and honors an
optional TINYTEX_INSTALLER_SHA256 pin verified before execution. Upstream
regenerates the installer, so the pin is opt-in rather than hard-coded.
F15 — render_statistics_plot_from_spec's series_with_mean path filters
non-finite values before handing them to matplotlib, matching its sibling
histogram/box/qq renderers; a single NaN/Inf previously blanked the plot.
TDD throughout (RED tests first). ruff clean; 407 neighborhood tests pass;
GUI builds offscreen with the dead controls gone and the method stack intact.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* fix(audit-r2): drop stale Levin visibility rule, fix Richardson label, sha256 case
Review follow-ups on the F4/F9 changes:
- get_parameter_visibility_rules() still returned a levin_u.beta rule that
depended on the removed levin_u.weight control — a dangling reference after the
F4 dead-control removal. Return {} (no dynamic rules remain); the web
/api/ui_specs payload and desktop imports handle an empty map.
- Richardson was labeled "(3-point)" / "(三点外推)" in the method spec, help
text, and the desktop i18n map, but it is an accelerator that needs >=4
columns (the F4 help edit made the contradiction explicit). Rename to plain
"Richardson" / "Richardson 序列加速" across ui_specs, help_specs, and
window_i18n_mixin so the label and the documented minimum input agree.
- install_tinytex.sh compared the SHA-256 pin against the raw digest; shasum
emits lowercase but a pin may be pasted uppercase, causing a false mismatch.
Normalize both with `tr` (Bash 3.2 safe, avoids the Bash-4 ${x,,} expansion).
Verified: uppercase pin now matches under bash and system /bin/bash 3.2, a
genuine mismatch still exits 2.
ruff clean; 86 tests pass; GUI builds with a consistent Richardson label.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: fanghao <fanghaoaa@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments