docs: document graph subsystem, add testing guide, and improve recommendations - #12
Merged
Merged
Conversation
…endations - CLAUDE.md: add graph/ subsystem table with file responsibilities and a callout about GraphInteractionHandler complexity; add Testing section with Vitest setup guidance and highest-value test targets - Recommendations: reformat from plain text to structured Markdown with title, date, section headers, code blocks, and summary table - GraphInteractionHandler.ts: add class-level JSDoc summarising responsibilities (zoom, pan, resize, header drag, manual-zoom locking) and constructor @PARAM tags https://claude.ai/code/session_01UhgpoygioBmRF14YA2QBxg
The codebase changes too quickly for a test suite to be worthwhile right now. Remove the Vitest setup guidance and replace with an explicit note discouraging contributors from adding tests at this stage. https://claude.ai/code/session_01UhgpoygioBmRF14YA2QBxg
…nt-disable - tsconfig.json: add noPropertyAccessFromIndexSignature to close the remaining gap alongside noUncheckedIndexedAccess — dot notation on index-signature types now requires bracket syntax - SimModel.ts: remove stale eslint-disable-next-line comment; the project uses Biome (not ESLint) and the _dt underscore prefix already signals an intentionally unused parameter to both TypeScript and Biome https://claude.ai/code/session_01UhgpoygioBmRF14YA2QBxg
…imeProperty Slider from SceneryStack requires a NumberProperty (which carries range metadata) rather than a plain Property<number>. Changing the declaration to NumberProperty with an open upper bound (0..MAX_VALUE) satisfies the Slider constructor's type constraint and lets us remove the `as unknown as Property<number>` double-cast from PlaybackControlsNode. Also drops the now-unused Property import from PlaybackControlsNode. https://claude.ai/code/session_01UhgpoygioBmRF14YA2QBxg
Introduce four local interfaces (CvMat, CvRect, MinMaxLocResult, CV) that describe exactly the OpenCV.js API surface used by OpenCVTracker. - cvPromise / loadCV() return Promise<CV> instead of Promise<any> - private cv: CV | null replaces any - private templateMat: CvMat | null replaces any - Single biome-ignore remains only at the true WASM boundary (mod.default extraction) where no typed alternative exists Narrowing through method calls (captureFrame) is handled by capturing this.cv and this.templateMat into local consts before use, avoiding non-null assertions while keeping TypeScript happy. If OpenCV bumps or renames matchTemplate, minMaxLoc, TM_CCOEFF_NORMED, Mat, Rect, cvtColor, or COLOR_RGBA2GRAY, the compiler will now flag it. https://claude.ai/code/session_01UhgpoygioBmRF14YA2QBxg
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
callout about GraphInteractionHandler complexity; add Testing section
with Vitest setup guidance and highest-value test targets
title, date, section headers, code blocks, and summary table
responsibilities (zoom, pan, resize, header drag, manual-zoom locking)
and constructor @PARAM tags
https://claude.ai/code/session_01UhgpoygioBmRF14YA2QBxg