Repository navigation
Releases: daviddwlee84/dev-cli
Release list
v0.3.3
Added
-
dev repo cd <repo>provides shell-only repository navigation, equivalent
todev repo open <repo> --runtime none, including argument completion and
the shell wrapper's directory handoff. It never opens a multiplexer. -
REMOTE can expand a repository into on-demand GitHub PR/GitLab MR pages,
inspect checks and diffnav previews, and open an exact task-free worktree or
independent Try clone. Large repositories default to authored/requested-review
requests; navigation never preloads PR lists or details. -
dev pr view,diff,checkout,merge --squash, andsync-baseshare the
dashboard services. Squash merge binds the reviewed head and retains unknown
outcomes without retries; optional base sync uses guarded fast-forward or
explicitly chosen rebase, with separate partial results and no local cleanup. -
REPOS/REMOTE offer Open in gh-dash for verified GitHub repository targets,
including uncloned REMOTE rows, while retaining native gh-dash configuration. -
A reproducible, isolated worktree workflow trial compares Herdr with no dev
task record against Sidecar workspaces. The guide documents task-free cleanup
and sharingdev repo list --jsonwith optional project navigation adapters;
existing task commands and JSON contracts remain unchanged.
v0.3.2
Added
dev repo clone OWNER/REPO --forkcreates or reuses a verified personal
GitHub fork while cloning the current source;dev repo fork [repo-or-path]
connects an existing checkout. Both configureoriginas the fork and
upstreamas the source, preserve branch pull targets, and direct default
pushes to the fork. Preview with--dry-run; neither command pushes or opens
a PR, and failures retain completed work.
v0.3.1
Added
- Try graduation opens a shared terminal/dashboard wizard for the project name,
category and local/add-URL/create-remote choice, then previews and confirms the
move.--remote-url,--forge,--namespace,--visibilityand--yesalso
support direct scripts; dry-run stays promptless and never publishes. - Successful local graduation remembers an optional project name for later
demote/regraduate cycles. Existing records derive a valid legacy destination
basename without read-time migration; an explicit name always wins.
Changed
- Existing remotes are preserved during graduation, including local renames.
New remote creation defaults to private with push, while adding an existing
URL defaults to no push; explicit push flags remain authoritative. - Remote add/create/push failures return nonzero and retain the completed local
graduation and any remote effects, without automatic retries or rollback.
Publication revalidates the checkout and reviewed branch/commit before each
stage; changed authority after remote creation retains the remote and skips push.
Fixed
- Detect actual terminals instead of treating every character device as a TTY,
so redirected commands, including graduation with/dev/nullinput, remain
noninteractive instead of entering a wizard and canceling at EOF. - Decode quoted and escaped Git configuration values so local remote URLs,
including Windows paths, are preserved correctly in catalog metadata.
v0.3.0
Added
dev help --treeexposes canonical command families, with a two-level default,
--depth 0for the full tree, optional command-path focus and--aliases.dev tries demotereturns a previously graduated Try to its original or an
explicitly selected safe Try path, preserving current files, Git history,
remotes and catalog metadata. Dry-run and the reviewed REPOS action share
guarded move planning and recovery.
Changed
- Root help and completion focus on 17 primary entrypoints. Work lifecycle,
repository helpers, Git support, agent integration, activity and installation
commands have canonical grouped paths; all prior top-level shortcuts retain
their semantics, flags, output and exit behavior without deprecation warnings.
tryremains create-or-open andgistremains GitHub-only. - Authored help, bundled skill and paired English/Traditional Chinese guides use
the canonical paths, with a v0.3 migration map and unchanged structured-output
contracts. Shell integration supports both grouped paths and shortcuts.
Fixed
- Dashboard skill installation and updates acquire their provider lease only
when execution begins, so discarded or canceled handoffs do not retain a lock.
v0.2.44
Added
- The dashboard footer shows the running version and a
dev upgradehint for
newer releases, using the existing nonblocking release cache and update toggle. - REMOTE adds dated GitHub/GitLab stars, forks, open issue and PR/MR counts, and
Gist stars/forks/comments. Statistics load after inventory in bounded batches;
numeric sorting includes hidden columns, and snippets can sort by exact file
count. Unknown, unavailable and stale observations remain distinct.
Fixed
- Keep the bundled skill entrypoint within its context budget by deferring
dashboard and wizard details to existing help and references. - FLEET and SSH registration no longer reject Windows Herdr hosts by OS. Herdr
0.9.1+ handles native Windows connection compatibility and setup approvals;
exact SSH alias/authentication guards remain. Dev-managed remote repository
workspace preparation remains Linux/macOS-only. - Repository new/setup wizards preserve real preflight errors instead of
reporting cancellation. Missing trusted skill installers are reported at
selection time with explicit skip/cancel choices that retain other settings.
v0.2.43
Added
- Repository setup can compose language/tool components from
scaffolds.toml.
The wizard combines gitignore templates and offers explicit skill selection,
including Python project guidance through the native skills/lock provider. dev snippetand GitHub-onlydev gistlist, search, open and create small
text shares through GitHub and GitLab, including explicit GitLab projects.
Optional bounded content search reports incomplete coverage. File/stdin and
editor workflows retain drafts and unknown publication outcomes honestly.
REMOTE can switch between repositories and the independent snippets inventory.
Changed
- Agent-ready repositories start with concise deferred
AGENTS.mdguidance.
Claude plans settings no longer create empty plans directories or.gitkeep
by default, and legacy hygiene/knowledge suggestions no longer crowd the
ordinary wizard. Existing explicit recipes, IDs and authored files are retained.
v0.2.42
Fixed
- Native Windows repository, linked-worktree and submodule paths now agree with
filesystem identity, including aliases and moved child checkout placeholders.
Worktree moves run outside the directory being renamed, and nesting guards
compare canonical paths. - Windows config paths round-trip through
~/, and Claude project keys encode
drive letters and native separators consistently. Git hook detection follows
Windows executable semantics. - Machine identity directories are created with their private policy atomically;
disk-size cache and project trust temporary files receive owner/DACL protection
before content is written, bound to the retained creation handle. - Operation lease locks verify the held file's identity and private policy;
Windows seals safe inherited private DACLs without repairing foreign or
broadly accessible files. Explicit template Git URLs and SCP references no
longer fail Windows local-file inspection before cloning. - The full Windows suite is now a required CI gate. Native provider fixtures,
isolated HOME/USERPROFILE and explicit Git line-ending defaults keep tests
from accidentally using installed tools or runner settings. Unsupported POSIX
mutation transports retain explicit rejection tests, and lease tests report
early operation failure instead of waiting indefinitely.
Large CLI/taskflow suites run in eight native shards with complete package,
test, example and fuzz-seed discovery; an audit fails on missing results,
failures and timeouts, with per-invocation logs retained.
v0.2.41
Added
- Dashboard REPOS → Ctrl+O → hygiene now inspects status, reads the selected
checkout's latest report, scans worktree/staged/local-history scopes, and opens
reviewed single or filtered-repository setup through shared CLI workflows. - All eight dashboard views share explicit action registrations for menus,
action keys and contextual Help. Applicable but unavailable actions remain
visible with a reason; selecting them never executes an operation.
Fixed
-
Go module ZIPs now exclude the existing SpecStory and agent-plan evidence
directories using narrow nested-module boundaries. Release CI independently
extracts, compiles and smoke-tests both compact source and Go module packages
while retaining embedded help, skills and hygiene rules. -
Hygiene's default generic credential detectors now verify Go source spans
against the scanned Git object, excluding syntax-only matches while retaining
literals, comments, custom rules and uncertain source. Generic privacy checks
omit loopback/unspecified IPs and reserved example email domains; explicit
private rules remain authoritative in normal and audit scans. -
Hygiene setup on an expanded worktree now uses that exact checkout instead of
silently returning. Menu execution rechecks availability and pinned task or
SSH-profile revisions after observation changes.
v0.2.40
Added
dev wt open --no-focusopens or reuses an existing checkout's runtime surface
without switching focus or issuing a shell directory handoff. It reports the
actual branch, path and runtime handle; it does not create a worktree, provision
files, adopt a task or launch an agent. Bundled guidance now calls for making
durable agent worktrees visible and reporting their locations immediately.dev prepare --specstory-pathselects and persists one exact SpecStory
transcript by provider, UUID and capture scope, including archive handoffs.
Ambiguous discovery still refuses to guess. Native finalization now rechecks
writer/source guards and exact intent revisions with locked compare-and-update
transactions;--revisioncan bind an external finalizer to a reviewed record.- Explicit
dev prepare --closeout co-commitdelegates a feature-only staged
snapshot and selected transcript/plan to a compatible canonical v2 helper.
It requires a real wrapper launched without automatic commit approval, retains
the canonical queue acknowledgement, and never launches or closes an agent.
Externalartifact finalize --allow-commitprepares without committing,
revalidates native guards and both revisions, then permits one commit-capable
call. Uncertain outcomes reconcile only; partial bindings never blindly requeue.
Read-only review previews and schema-1co_commit_handoff/artifact_handoffs
JSON keep persisted intent separate from helper observations. The separately
maintained helper is not bundled or installed automatically; native Windows
co-commit remains unsupported.
Fixed
- Compact release source archives also exclude Claude, Codex, Cursor and OpenCode
plan directories, not just SpecStory history. Git retains the selected evidence;
the source-archive gate verifies these exclusions and the real native build. - REPOS
nand the new-repository action now open the clone-aware wizard while
selected-row observations are pending or the filtered list is empty. Active
clones still block; wizard confirmation and fresh destination checks remain. - Dashboard local filters and help index/result searches accept Up/Down while
typing without moving the text cursor or leaving the input. Enter still keeps
the query/selection and exits filtering without opening; ordinary list Enter,
article search/scroll and Notes search retain their existing behavior.
v0.2.39
Added
dev hygiene reportsummarizes the newest stored scan for the current
checkout without scanning again (so the pre-commit hook's staged scan is
readable right after a blocked commit), or--report ID/--rescan.
Findings are grouped by severity, rule, file and category, ordered by
disposition then occurrences, with--top,--disposition,--rule,
--category,--pathfilters and a--findingsdrill-down.--jsonemits
the newhygiene_summaryschema-v1 document.--valuesshows masked
distinct values per rule; raw values and their context go only to a private
review file whose locationdev hygiene review-path <report-id>prints.
Scan findings gain additive keyedvalue_idandfile_idfields, keeping
private filenames distinct even when their displayed labels match. Stored
summaries show the scan date without claiming current source freshness;
legacy file counts are explicitly marked as lower bounds. Value capture is
byte-bounded and skipped samples are visible; a failed values sidecar retains
a partial scan receipt. Invalid path globs fail before scanning, and filter
metadata is policy-masked.dev retire --base <ref>overrides the containment target used to prove a
DONE task or linked worktree is integrated: a local branch, a remote-tracking
branch such asorigin/main, or a commit.dev sweep --baseforwards the
same override to DONE tasks, and--merged-worktreesproves managed tasks
against the base it already verified. Afterdev done --merged --base-ref,
cleanup hints and the cleanup wizard carry that ref forward.
Fixed
- Artifact readiness no longer lets unrelated repositories' intent records
block a detached checkout. Repository identity is filtered before branch
identity is required for moved intents; relevant pending, ambiguous or
unreadable records still block cleanup. Windows non-directory store errors
are no longer mistaken for an absent store. Submodule artifact observation
errors retain their specific cause instead of only reporting unfinished artifacts. - Recursive worktree cleanup can locally prove never-initialized submodules
empty without downloading or publishing children. Exact empty module
administration is revalidated and pruned with directory-only operations before
ordinary no-force Git removal. Retained child stores, orphan data, ignored
files, links and ownership claims remain blockers. Mixed initialized/empty
graphs retain recovery proofs and rollback for real child repositories, and
interrupted empty-directory pruning reports partial effects. Native path
spellings share bookkeeping keys on Windows without relaxing physical identity
checks.--recursiveremains required; alternates and squash-ancestry
protections are unchanged. - Guarded file replacements on macOS no longer fail with a metadata round-trip
error when the source file was written by another application. The kernel
assignscom.apple.provenanceto each new file and ignores attempts to copy
it, so hygiene redaction, encoding repair and recovery, anddev ssh init
now leave that one tag to the kernel while still requiring every other
extended attribute to survive and still detecting a changed source. Apply and
recovery errors now keep their underlying cause instead of only pointing at
the private receipt. dev sweep --apply --yes(including--merged-worktrees) now completes a
batch in one pass. A reviewed retirement or removal plan is bound only to the
worktrees that share its branch or path, so removing an unrelated sibling
earlier in the batch no longer turns every remaining plan stale. A new
checkout of the same branch, or a lock or HEAD change on the target, still
invalidates the plan.- Retirement and contained worktree removal no longer refuse a base recorded as
a commit or remote-tracking ref (for examplebase = "b509448"from
dev start --base <commit>) with "local base ref refs/heads/… does not
exist". Bases resolve as a local branch, then a remote-tracking branch, then a
commit, and apply re-resolves the same input. A recorded fork-point commit is
never replaced by the default branch: when it cannot prove integration, the
plan stays blocked and names--base <branch>. - An agent can now repair or redact another session's stopped SpecStory
transcript from its own pane. The artifact writer guard previously blocked
the calling agent itself, leaving--no-runtimeas the only way through.
Other live agents still always block. The caller is exempt only when Herdr's
exact session id differs from a valid UUID in every target's actual
SpecStory-generated preamble, or when--allow-shared-checkoutexplicitly
asserts disjoint ownership (for example plans or unknown session identities).
An identified caller-owned live transcript is refused even with the override;
malformed headers or body mentions never prove another session.
dev hygiene restore --applynow guards the receipt's exact paths.