Skip to content

feat(ui): main_recursive.sh — walkthrough for --recursive across add/get/status#205

Open
CGMossa wants to merge 1 commit into
feat/dvs-rpkg-get-recursivefrom
feat/ui-main-recursive
Open

feat(ui): main_recursive.sh — walkthrough for --recursive across add/get/status#205
CGMossa wants to merge 1 commit into
feat/dvs-rpkg-get-recursivefrom
feat/ui-main-recursive

Conversation

@CGMossa
Copy link
Copy Markdown
Contributor

@CGMossa CGMossa commented May 16, 2026

AI-written details

Summary

Carved out of #154 as the ui-walkthrough layer of the 3-way split. Stacked on #204 (rpkg binding), which depends on #203 (core+CLI).

  • ui/main_recursive.sh (+550 lines): exercises the recursive matrix:
    • dvs add — explicitly rejects --recursive (recursion is encoded via glob; flag-based recursion was deliberately excluded for add).
    • dvs get — positional file; single-dir; single-dir + --recursive; . + --recursive; mixed file/dir inputs.
    • dvs status — same matrix, plus the no-path case where --recursive is a documented no-op (whole-repo iteration is already recursive).
    • Each case logs the command and the resulting state of the working tree so CLI/R parity can be eyeballed in the published HTML.
  • ui/CLAUDE.md: registers main_recursive.sh in the script roster; widens the comment column to accommodate the longer name.

What's NOT here

The ui-trace cleanup hunks (helpers.sh regex extension + deferred set -x across main.sh / main_parallel.sh / main_progress.sh / main_status.sh) that #154 used to carry are not in this PR. They're identical to the changes already in #198 (chore/ui-trace-cleanup). After #198 lands and this rebases on main, those hunks resolve to nothing.

Test plan

  • bash ui/main_recursive.sh runs to completion without unexpected nonzero exit
  • just ui-publish ui-recursive produces a readable HTML
  • ui/CLAUDE.md renders without trailing-whitespace anomalies

Sequencing

  1. Merge feat(core+cli): add --recursive to dvs get #203 → main
  2. Merge chore(ui): trace output cleanup — say/set-x/subshell filters #198 → main
  3. Rebase feat(rpkg): expose --recursive in dvs_get #204 on main (revert dvs branch pin to main), merge
  4. Rebase this PR on main, merge

Drafted by Claude (claude-opus-4-7). Reviewed by the author.

…get/status

Adds ui/main_recursive.sh (550 lines) exercising the matrix:

- dvs add: explicitly rejects --recursive (glob is the recursion
  encoding; flag-based recursion was deliberately excluded for add).
- dvs get: positional file, single-dir, single-dir + --recursive,
  '.' + --recursive, mixed file/dir inputs.
- dvs status: same matrix, plus the no-path case where --recursive
  is a documented no-op (whole-repo iteration is already recursive).

Each case logs both the command and the resulting state of the
working tree so the CLI/R parity can be eyeballed in the published
HTML.

ui/CLAUDE.md: adds main_recursive.sh to the script roster + widens
the comment column to accommodate the longer name.

Carved out of #154. Stacked on the rpkg PR. ui-trace cleanup hunks
that #154 used to carry are intentionally NOT here — they land
separately via #198 (chore/ui-trace-cleanup).
@CGMossa CGMossa force-pushed the feat/dvs-rpkg-get-recursive branch from d034deb to 5456863 Compare May 17, 2026 09:17
@CGMossa CGMossa force-pushed the feat/ui-main-recursive branch from 3e9a174 to 50b9093 Compare May 17, 2026 09:17
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