Skip to content

docs(spec): remaining audit edits (errors, init/add/get/status text + R signatures, audit-log JSON, threading)#149

Open
CGMossa wants to merge 5 commits into
mainfrom
spec-review-april-2
Open

docs(spec): remaining audit edits (errors, init/add/get/status text + R signatures, audit-log JSON, threading)#149
CGMossa wants to merge 5 commits into
mainfrom
spec-review-april-2

Conversation

@CGMossa
Copy link
Copy Markdown
Contributor

@CGMossa CGMossa commented Apr 23, 2026

REPURPOSED PR: This is now a PR providing amendments to the specs.md that are broader in scope, and R package specific.

AI-written details

Status: residual after Wave 1 splits

This PR was the original "spec audit april" pass (178 +/45 -). It has been carved up into focused PRs; what remains here is the content that's either harder to verify against current code or still blocked on author decisions.

Already extracted

Topic Now in
Drop stale lib.rs mod comment (the only non-spec change) #197
Drop untracked from file-state model (4 → 3 states) #199
High-level conventions: paths, NULL defer #200
Misc cleanups: whitespace, capitalization, three-cmd glob #201
Refresh CLI --help blocks for init/add/get/status #202
ui trace cleanup (was hitchhiking on #170) #198

Remaining here

  • Errors / failures new section, including empty #### CLI and #### R package subsections — blocked: the empty subsections need content before this can land.
  • init: "A storage directory or backend is bound to one dvs repository" + metadata_folder_name omitted when default; Library section prose; dvs_init R signature change (root_dir = NULL, compression = c("zstd", "none"), drops no_compression); return prose update.
  • add: "must not have a recursive option" rule; dry-run prose to mention R package; dvs_add R signature (paths, dry_run = NULL); partial-completion contract paragraph.
  • get: dry-run prose mentions R package; dvs_get R signature (paths, dry_run = NULL); partial-completion contract paragraph.
  • status: prose line break; dvs_status R signature (paths, recursive, status filter vector); bullet rewrite.
  • Audit trail: nested add object shape (file + compression); worked JSON example.
  • Parallelism: clarify env var vs explicit thread count; new #### R package subsection — partially blocked: tied to the threading-strategy TODO at the original L419.

Follow-up needed before this can merge

Test plan

  • specs.md renders cleanly on GitHub once the above gaps are filled
  • R signatures match the actual exports after the dependent feature PRs land

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

@CGMossa CGMossa changed the title sync spec to current implementation plus added missing items spec audit paril Apr 23, 2026
@CGMossa CGMossa changed the title spec audit paril spec audit april Apr 23, 2026
@CGMossa CGMossa force-pushed the spec-review-april-2 branch from 63624c4 to dd513bb Compare April 29, 2026 21:02
@CGMossa

This comment was marked as outdated.

@CGMossa CGMossa force-pushed the spec-review-april-2 branch from 102bf23 to ff6b520 Compare May 4, 2026 12:10
@CGMossa CGMossa marked this pull request as ready for review May 4, 2026 14:26
@CGMossa CGMossa force-pushed the spec-review-april-2 branch from 547ef2b to 0d9396d Compare May 16, 2026 09:53
CGMossa added a commit that referenced this pull request May 16, 2026
specs.md said "4 states" but only listed 3 (current, absent, unsynced)
plus the obsolete `untracked`. dvs no longer surfaces an `untracked`
state — `dvs status` operates on tracked files (those with metadata),
not on arbitrary files in the project tree. Drop the bullet and fix
the count.

Carved out of #149.
@CGMossa CGMossa changed the title spec audit april docs(spec): remaining audit edits (errors, init/add/get/status text + R signatures, audit-log JSON, threading) May 16, 2026
CGMossa added a commit that referenced this pull request May 17, 2026
specs.md said "4 states" but only listed 3 (current, absent, unsynced)
plus the obsolete `untracked`. dvs no longer surfaces an `untracked`
state — `dvs status` operates on tracked files (those with metadata),
not on arbitrary files in the project tree. Drop the bullet and fix
the count.

Carved out of #149.
CGMossa added a commit that referenced this pull request May 17, 2026
#201)

Collected small spec edits with no behavioral content:

- L29 strip trailing space on `\`init\` will create the \`dvs.toml\`. `
- L36 fix the gitignore step: it's the metadata file (and adjacent
  data file) being added, not "each file" — matches the actual
  implementation in dvs::gitignore::*
- L50 drop double blank line before `## In-depth spec`
- L155 capitalization `#### R Package` → `#### R package` (the
  other three sections already use lowercase "package")
- L351 globbing section: `\`add\` and \`get\` both accept` →
  `\`add\`, \`status\`, \`get\` accept` (status accepts --glob too;
  "both" is also wrong for three operations)

Carved out of #149.
CGMossa added a commit that referenced this pull request May 17, 2026
Regenerated from actual `dvs <sub> --help` output. All four blocks
now reflect:

- the global `--threads <THREADS>` option (init/add/get/status)
- get/status's expanded column widths from the longer --threads label
- status's new positional `[PATHS]...` + `-r, --recursive` +
  `--with-metadata` flags
- status's updated one-liner ("Gets the status of each files in the
  current repository") and removed "By default shows all tracked
  files..." paragraph
- consistent `shell` language tag on the fenced blocks
- consistent `❯` prompt (stripped stray U+F432 Nerd Font glyphs from
  the original copy-paste)

Carved out of #149.
CGMossa added a commit that referenced this pull request May 17, 2026
Two short subsections under the High-level overview, recording rules
already enforced in the implementation but not previously written
down:

- Relative paths vs. absolute paths: every `dvs` command accepts
  both forms; project-scope / symlink resolution is the library's
  responsibility.
- R package: pass `NULL` in `dvs_*` functions to defer to the
  library's default value.

The "Rust library must never use std::io" rule from the original
spec audit pass is intentionally omitted — the broader
no-CLI/R-package-coupling invariant on the same topic already landed
on main via #195.

Carved out of #149.
@CGMossa CGMossa force-pushed the spec-review-april-2 branch from 2e9628c to 535784b Compare May 17, 2026 09:16
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