Skip to content

feat(tui): Paramify tab redesign, focus/shortcut fixes, manifest-scoped scripts sync#18

Merged
21tmccauley merged 1 commit into
mainfrom
feat/tui-paramify-redesign
Jul 23, 2026
Merged

feat(tui): Paramify tab redesign, focus/shortcut fixes, manifest-scoped scripts sync#18
21tmccauley merged 1 commit into
mainfrom
feat/tui-paramify-redesign

Conversation

@21tmccauley

Copy link
Copy Markdown
Collaborator

A collection of TUI improvements for the next release (0.3.0-beta), plus the one behavior change they surfaced. All changes are additive to the just-merged scripts-sync feature (#3).

UI changes

Paramify tab redesign. Rebuilt the cramped single-table tab into stacked evidence upload and scripts sync panels over a shared log. Scripts sync gains a Preview action that runs a read-only --dry-run and surfaces the per-fetcher plan (create / update / drift / noop) in a table — flagging which drifted scripts --force would push — so you can see what a sync will do before running it.

Focus + keyboard-shortcut fix. Page shortcuts (ctrl+r / ctrl+u / ctrl+s) previously only fired right after a number-key tab switch, because a page's bindings only fire when focus is inside it and focus_default wasn't called on mount, mouse tab-clicks, or escape. Now default focus lands in the active pane in all those cases, so shortcuts work however you enter a tab.

Add-fetchers picker fix. A category whose fetchers were all already in the manifest (e.g. datadog with all 13 added) vanished from the picker. It now stays visible, with already-added fetchers rendered greyed-out and non-selectable.

Uniform action-row sizing. Preview / Sync Scripts / force / reassociate were mismatched in width (content-sized) and height (buttons flattened to 1 row, checkboxes 3). They're now a uniform 20×1 band.

Behavior change

Scripts sync is manifest-scoped by default. It previously planned all repo fetchers (122) regardless of your manifest; it now provisions scripts only for the fetchers your manifest uses — mirroring how paramify upload is run-scoped — so you don't create scripts + evidence sets you never populate. --all restores whole-catalog provisioning. Wired through the uploader, framework.api, the CLI (paramify scripts sync [manifest] [--all]), and the TUI (active manifest).

Testing

  • 233 passed (2 new: _discover_specs include-filter + sync_scripts forwarding); ruff check framework/ + mypy framework/ clean.
  • Verified in headless Textual Pilot runs: mount/tab/escape focus, ctrl+r liveness, plan-table population, add-picker disabled leaves, and the 20×1 uniform sizing.
  • CLI scoping confirmed: default manifest.yaml → 13, --all → 122, explicit manifest → 1.

🤖 Generated with Claude Code

…ed scripts sync

A collection of TUI improvements for the next release, plus the behavior change
they surfaced:

- Paramify tab: rebuilt into stacked evidence-upload + scripts-sync panels. A
  Preview action runs a read-only dry-run and surfaces the per-fetcher plan
  (create/update/drift/noop) in a table, flagging what --force would push.
- Scripts sync is now manifest-scoped by default (provisions scripts only for the
  fetchers you collect, like `upload`); `--all` pushes the whole catalog. Threaded
  an `include` filter through the uploader, api, CLI (new manifest arg + --all),
  and TUI (active manifest).
- Focus/keyboard fix: page shortcuts (ctrl+r/ctrl+u/ctrl+s) fire regardless of
  focus; default focus lands in the active pane on mount, tab switch (mouse too),
  and escape — not just on number-key switches.
- Add-fetchers picker: a fully-added category (e.g. datadog) no longer disappears;
  already-added fetchers render greyed-out and non-selectable.
- Uniform sizing for the Paramify action row (Preview/Sync/force/reassociate) —
  equal width, and checkboxes flattened to one row to match the buttons.

Tests: 233 passed (2 new scoping tests); ruff + mypy clean. TUI verified with
headless Textual Pilot runs (focus, plan population, sizing).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@21tmccauley
21tmccauley merged commit f7aaf6c into main Jul 23, 2026
7 checks passed
@21tmccauley
21tmccauley deleted the feat/tui-paramify-redesign branch July 23, 2026 18:33
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