Skip to content

Dark theme variants and global runs select-all - #7154

Closed
CarsonBurke wants to merge 38 commits into
tensorflow:masterfrom
CarsonBurke:fix/audit-issues-2-9
Closed

CarsonBurke wants to merge 38 commits into
tensorflow:masterfrom
CarsonBurke:fix/audit-issues-2-9

Conversation

@CarsonBurke

Copy link
Copy Markdown

Two user-facing changes on top of the audit fixes:

Selectable darker themes (catppuccin, tokyo-night, github, vscode, codex)

  • New darkThemeId feature flag, persisted in global settings and honored as ?darkTheme=.
  • Header theme menu gains a dark-theme section; selecting a variant also switches to dark mode.
  • Per-variant Material themes applied via body[data-tb-dark-theme], plus variant-aware tb-theme prop mixins (and dark-only helpers for surfaces that read the baseline dark maps directly).
  • Verified: webapp karma suite green; browser-checked codex (full-black coherence with scalar cards) and catppuccin; default-dark and light headers unchanged.

Runs select-all covers every page

  • In paged (virtualized) mode the table only holds one window, so the header toggle left every other page untouched (visible rows unchecked while the chart kept plotting ~130 series).
  • New selectAllRuns action + effect resolves the full filtered scope with the same query/filters/sort as the catalog fetch, then toggles via the existing runPageSelectionToggled reducer. Legacy non-paged path unchanged.
  • Verified: new effect + container tests, full karma suite, 150-run browser session (deselect-all empties the chart and it stays empty).

Still to test before merging: large-scale perf of the full-scope select-all fetch, and review of the remaining audit WIP snapshotted in the second commit.

Improve local TensorBoard run workflows
An empty bytestring written via _AsyncWriterThread was written to disk
but never marked done because the worker tested truthiness, hanging
every later flush() forever.

Fixes #2
The guard used < where <= is required for a zero-based index, so a
step holding exactly sample clips raised IndexError (HTTP 500).

Fixes #3
The thread-local markdown.Markdown instance kept state such as
reference definitions across convert() calls, so link targets from
one document could leak into later unrelated documents.

Fixes #4
get_all promised to silently ignore invalid entries but re-raised
EISDIR/ENOENT: a planted subdirectory was a persistent local DoS, and
a file removed by an exiting peer between listdir and open crashed
the snapshot. Skip non-regular files (a FIFO would block open
forever) and ignore ENOENT/EISDIR alongside EACCES.

Fixes #5
The early return skipped listener removal, state reset, and
highlight clearing when a drag ended outside any header, leaving
page-wide dragover suppression and stale state behind. Only the
orderColumns emit needs the guard.

Fixes #6
getSavedScalarPins parsed blindly, so malformed JSON threw during the
pin-restore effect and wrong-shape values crashed downstream. Mirror
the safeParse siblings: return [] on parse failure or non-string
arrays.

Fixes #7
getPersistentFeatureFlags threw on malformed JSON, breaking
bootstrap flag resolution. Return {} on parse failure. Also wires
the orphaned feature_flag_test_lib into the karma suite so these
specs actually run.

Fixes #8
into_tensor kept all N buckets with min/max as outer edges,
producing backwards (negative-width) outer buckets, while
_migrate_histogram_value in data_compat.py drops empty buckets on
both ends. Port the trimming so both backends serve identical
histogram tensors.

Fixes #9
Add Catppuccin, Tokyo Night, GitHub, VS Code, and Codex as dark
theme variants alongside the default dark theme. The header theme
menu gains a dark-theme section; the choice is stored as a
darkThemeId feature flag, persisted in global settings and honored
as a ?darkTheme= query param, and applied via
body[data-tb-dark-theme] with per-variant Material themes plus
variant-aware tb-theme prop mixins (including dark-only helpers for
surfaces that previously read the baseline dark maps directly).
Covers the in-progress audit fixes on this branch. Notably, runs
select-all now resolves the full filtered scope in paged mode via a
new selectAllRuns action and effect instead of toggling only the
loaded window (header toggle previously left every other page
untouched). Verified with the webapp karma suite and a 150-run
browser session.
@google-cla

google-cla Bot commented Sep 12, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

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