Skip to content

Sync upstream tensorflow/tensorboard master (3 commits) + extend refactors to TensorBored code#71

Merged
Demonstrandum merged 6 commits into
masterfrom
cursor/tensorboard-upstream-sync-d142
Apr 2, 2026
Merged

Sync upstream tensorflow/tensorboard master (3 commits) + extend refactors to TensorBored code#71
Demonstrandum merged 6 commits into
masterfrom
cursor/tensorboard-upstream-sync-d142

Conversation

@Demonstrandum

Copy link
Copy Markdown
Owner

Motivation for features / changes

Sync with upstream tensorflow/tensorboard master which had 3 new commits since our last sync. These are all housekeeping/refactoring changes with no behavioral impact. We also extend the intent of each upstream change to TensorBored-specific code that upstream didn't touch.

Technical description of changes

Upstream merge (3 commits)

  1. e6df954 — Add explicit changeDetection property on all Angular components. Every @Component decorator now explicitly declares ChangeDetectionStrategy.Default or .OnPush instead of relying on the implicit default. ~50 upstream component files affected.

  2. 8e7bbc6 — Remove usages of the Component interface. Replaces Type<Component> with Type<unknown> in routing, plugin registry, and customization code. The Component interface had only optional properties and provided no real type safety.

  3. 81e6137 — Fix TypeScript linter errors. Casts spyOn(store, 'dispatch') to jasmine.Spy across 18 test files for NgRx dispatch overload compatibility. Updates throwError to factory form per RxJS 7. Adds tslint suppressions for snake_case API keys.

Merge conflict resolution

One conflict in scalar_card_test.ts — upstream reorganized imports alphabetically; our code had TensorBored-specific imports (metricsTagYAxisScaleChanged, metricsTagXAxisScaleChanged). Resolved by merging both sets in alphabetical order.

Extending upstream intent to TensorBored code

Explicit changeDetection (from commit 1):

  • Added changeDetection: ChangeDetectionStrategy.Default to BuildBadgeComponent — the only TensorBored-specific component missing it. All other TensorBored components (profile menu, superimposed cards, etc.) already had explicit OnPush.

Remove Component interface (from commit 2):

  • No action needed — TensorBored code already uses Type<unknown> everywhere. No Type<Component> usages existed.

Linter fixes (from commit 3):

  • Cast spyOn(store, 'dispatch') to jasmine.Spy in 17 additional test files that upstream didn't touch (webapp: 10 files, debugger plugin: 7 files).
  • Updated throwError(new Error(...)) to factory form throwError(() => new Error(...)) in runs_effects.ts.

Screenshots of UI changes (or N/A)

N/A — No UI changes. All modifications are refactoring/linting.

Detailed steps to verify changes work correctly (as executed by you)

  1. Verified merge produces only 1 conflict (scalar_card_test.ts), resolved correctly
  2. Searched entire codebase for remaining spyOn(store, 'dispatch') without jasmine.Spy cast — none found
  3. Searched entire codebase for remaining throwError(new Error( non-factory form — none found
  4. Searched for TensorBored components missing explicit changeDetection — only build_badge_component.ts found and fixed
  5. Searched for remaining Type<Component> usages — none found

Alternate designs / implementations considered (or N/A)

N/A — Straightforward upstream sync with mechanical extension of the same patterns to our code.

Open in Web Open in Cursor 

JeanMeche and others added 6 commits March 18, 2026 17:22
The `Component` interface provides no typesafety to description
component classes. Its only purpose is to define the properties of the
Component decorator. Currently it only has optional properties, so it
matches the type `{}` which is as safe as `any`.
## Motivation for features / changes
Fix linter errors in test files to keep the codebase compliant with
current TypeScript and tslint rules in internal build.
   
## Technical description of changes
                  
Cast `spyOn(store, 'dispatch') to jasmine.Spy` across 18 test files to
satisfy `NgRx` dispatch overload signatures. Updated `throwError to
factory form throwError(() => new Error(...))` per RxJS 7 requirements.
Added `tslint:disable-next-line:enforce-name-casing` suppressions for
snake_case keys that mirror backend API contracts.
Syncs 3 upstream commits:
- e6df954: add explicit changeDetection on all components
- 8e7bbc6: remove usages of the Component interface
- 81e6137: fix typescript linter errors

Resolved conflict in scalar_card_test.ts: merged upstream's alphabetized
imports with our TensorBored-specific metricsTagYAxisScaleChanged and
metricsTagXAxisScaleChanged imports.

Co-authored-by: Samuel <samuel@knutsen.co>
Continues the intent of upstream e6df954 (add explicit changeDetection
on all components) to TensorBored-specific code. BuildBadgeComponent
uses ChangeDetectionStrategy.Default since it mutates component state
in an HTTP subscribe callback.

Co-authored-by: Samuel <samuel@knutsen.co>
…ctory

Continues the intent of upstream 81e6137 (fix typescript linter errors)
to files that upstream didn't touch:

- Cast spyOn(store, 'dispatch') to jasmine.Spy in 17 test files to
  satisfy NgRx dispatch overload signatures.
- Update throwError(new Error(...)) to throwError(() => new Error(...))
  factory form in runs_effects.ts per RxJS 7 deprecation.

Co-authored-by: Samuel <samuel@knutsen.co>
@github-actions

github-actions Bot commented Apr 1, 2026

Copy link
Copy Markdown

Preview Deployment

Status ✅ Running
Live Preview https://Demonstrandum-tensorbored-pr-71.hf.space
Space https://huggingface.co/spaces/Demonstrandum/tensorbored-pr-71
Details
  • Wheel: tensorbored_nightly-2.21.0a20260401-py3-none-any.whl
  • Commit: ef0ccb1
  • Build status: success

@Demonstrandum Demonstrandum marked this pull request as ready for review April 2, 2026 12:08
@Demonstrandum Demonstrandum merged commit 3d93aef into master Apr 2, 2026
14 checks passed
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.

4 participants