Skip to content

double check location of review results #225

Description

@BjRo

location of review results caused some errors on client work. it's potentially not ideal. can we find a better place? do we need the intermediate files at all?

Activity

  1. added
    bugSomething isn't working
    on Sep 22, 2026
  2. changed the title [-]double check location of review results[/-] [+]darrow-review: double check location of review results[/+] on Sep 22, 2026
  3. changed the title [-]darrow-review: double check location of review results[/-] [+]double check location of review results[/+] on Sep 22, 2026
  4. BjRo commented on Sep 24, 2026

    @BjRo
    OwnerAuthor

    Proposed direction

    Move generated darrow-review artifacts out of the repository Git directory. Use a per-user Darrow review-state root (proposed defaults: ~/.darrow/reviews/ on Unix and %LOCALAPPDATA%\Darrow\Reviews\ on native Windows), with separate directories for each repository, worktree, and review run. Keep this generated state distinct from repository .darrow/config.json.

    Return absolute artifact paths from the bundled helpers. Clients and follow-up verification should use those paths instead of scanning .git or guessing filenames.

    Give artifacts a lifecycle: remove incomplete/scratch runs safely; retain the validated evidence needed for later fix verification; prune completed review lineages after a documented period of inactivity (proposed default: 30 days, checked on review invocation, with an explicit way to retain or remove a lineage). Protect stored diffs and findings with user-only permissions.

    Why this needs coordinated changes

    Today review-scope creates darrow-review.* under git rev-parse --absolute-git-dir, successful runs have no cleanup, and review-check requires output beneath that Git directory. Fix verification can locate prior artifacts there and records a prior verification artifact's absolute path and checksum. Cleanup must preserve those links or make the retained evidence self-contained before pruning. The review skill, helpers, validation, docs, and evals all need the new location and lifecycle contract.

    Acceptance

    • Review and fix verification write generated artifacts to the per-user review-state root, not .git or the product tree, on Unix and native Windows.
    • Parallel runs and different repositories/worktrees do not collide; returned paths identify the exact run and remain absolute.
    • Exact scope, check, route, original-finding, and prior-verification validation still work while evidence is retained.
    • Cleanup removes abandoned and expired artifacts without leaving a retained verification with a missing dependency. A follow-up after expiry reports the missing evidence clearly.
    • Tests cover location selection, concurrent runs, retention/cleanup, and a multi-round fix-verification chain; documentation explains where artifacts live and when they are removed.
  5. BjRo commented on Sep 24, 2026

    @BjRo
    OwnerAuthor

    This supersedes the earlier review-state path proposal. The implementation is in #238.

    Use one user-local Darrow root:

    Purpose macOS/Linux Windows
    Disposable UV project environments ~/.darrow/cache/ %LOCALAPPDATA%\Darrow\Cache\
    Retained review packets and evidence ~/.darrow/reviews/ %LOCALAPPDATA%\Darrow\Reviews\

    Review state is separated by repository, worktree, and run. The next review invocation prunes unpinned runs after 30 days without changes. Referenced prior runs are retained with their dependent verification run. review-scope pin retains a run and its dependencies; unpin restores normal retention. review-scope prune --all applies the rule on demand, and --older-than-days 0 removes eligible unpinned runs immediately. Cache environments are disposable and separate from review pruning; they can be removed manually when no process needs them.

    This updates the default UV environment location from the already implemented #226. DARROW_CACHE_DIR remains an override. UV_CACHE_DIR remains under UV or caller control. No migration or deletion of files in the old locations is performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions