Skip to content

Add Insights to Herdr toolbar - #107

Merged
GaganSD merged 17 commits into
mainfrom
feat/insights-toolbar
Nov 2, 2026
Merged

GaganSD merged 17 commits into
mainfrom
feat/insights-toolbar

Conversation

@GaganSD

@GaganSD GaganSD commented Nov 2, 2026

Copy link
Copy Markdown
Owner
  • Adds an Insights button beside Herdr's Files/Changes toolbar controls, opening a new Insights tab on each click.
  • Composes the button in a personal layout clone while reusing Herdr's original tabs mod unchanged.
  • Extends the installer to install both mods atomically, create the toolbar layout safely, and preserve existing layouts, click state, keys, and usage data.
  • Uninstall returns to the original layout and removes only unchanged owned files; collisions, symlinks, and local edits fail closed.
  • Adds end-to-end installer/uninstaller and toolbar composition tests plus updated installation docs.

Validation: npm run test:insights (170 passing) and npm run check:insights.

@GaganSD GaganSD changed the title Add Insights button to Herdr toolbar Add Insights to Herdr toolbar Nov 2, 2026
- Replace per-mod special cases with one MODS table for manifest and runtime rules
- Resolve app home once in uninstall and drop duplicate existence checks
- Reuse the layout name assertion instead of validating via a discarded path
- Clone layout trees with structuredClone and drop the redundant record suffix check
- Remove the pre-toolbar --open flag; the Insights button replaces it
- Hoist duplicated test fixtures and tree snapshots
- Resolve source root, app home, and the Node gate once in install main
- Validate every source before creating the app home; keep force and the
  launcher-conditional toolbar preparation explicit
- Give MODS the mod path and optional flag, validate names in one place, and
  drop the dashboard defaults from modDir/manifestPath/readManifest/writeManifest
- Move toolbar/launcher install tests and shared fixtures out of the 1000-line
  install.test.mjs into toolbar-install.test.mjs and install-fixtures.mjs
When 53 weeks of 12px cells cannot fit, the grid overflowed to the right and
the viewport showed the oldest columns. Align an overflowing grid to the end so
the visible columns are the most recent weeks; wide views stay centered.
The scroll wrapper sized its content to the grid, so justify_end had no free
space and the viewport still showed the oldest weeks. Clip the row directly so
end alignment shifts the grid left and the newest weeks stay visible.
The 960px breakpoint left wide-but-not-huge panes in one column of ten rows.
Two columns need roughly 340px each, so gate on 740px and pin the breakpoint
with a regression test.
Locate an existing tab whose pane runs the insights mod and select it; create a
tab only when the current space has none, so repeated clicks cannot stack
duplicate dashboards.
Replace the 740px breakpoint with a wrapping row: two five-row columns with a
minimum readable width, so the layout splits only when both actually fit and
falls back to one column at any smaller size.
@GaganSD
GaganSD merged commit 9fab3c3 into main Nov 2, 2026
11 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.

1 participant