- Update the minimum Go toolchain to 1.26.6 to resolve GO-2026-5026, GO-2026-5972, GO-2026-6090, and GO-2026-6218.
Highlight: portable export now produces stable artifact identities — local
ingestion churn no longer changes the output digest, so unchanged data stops
producing spuriously different exports.
- Add streamlined
portable exportgenerations with single-pass sanitized compatibility tables and compact final files. Artifact identity now ignores explicit local ingestion churn while retaining exact SQLite SHA-256 integrity, so re-exporting unchanged data yields the same identity. Includes granular progress reporting and clean interruption handling. - Preserve the full schema in current-state exports, so a restored database matches the source structure rather than only its rows.
- Let
portable exportatomically produce manifest-backed gzip generations with a separate archive byte budget, so growing portable databases stay publishable without moving compression into downstream scripts.
- Update Kong to v1.16.1.
- Update the minimum Go toolchain to 1.26.6 for the latest standard-library security fixes.
- Load manifest-backed gzip SQLite artifacts into the verified runtime mirror, preserving the uncompressed size, digest, and
quick_checkcontract when a portable database outgrows GitHub's single-file limit.
- Rewrite the README around the local-first quickstart and move deeper cloud archive and Docker material into the documentation.
- Update
actions/staleto v11 and expose its debug-only mode for safe manual policy validation. - Accept the shared release workflow's leading
./archive-member notation in local release verification. - Update CrawlKit to v0.14.6, SQLite to v1.56.0, the current modernc libc and memory releases, and the golden-test helper.
- Move official releases to the shared signed, notarized, independently verified GitHub Actions pipeline while preserving archive names, contents, checksums, and Homebrew delivery.
- Reject SQLite
file:URIs and:memory:consistently for configured and environment-supplied database paths, preserving Gitcrawl's filesystem-only archive contract across driver upgrades. - Update CrawlKit to v0.14.4, SQLite to v1.55.0, the matching modernc libc runtime to v1.74.4, TruffleHog to v3.96.0, and the current golden-test, profiling, experimental, and modernc compiler helpers.
- Escalate reset-pull repair failures to the reclone fallback with a 15-minute backoff so checkouts with broken Git metadata self-heal instead of requiring manual recovery.
- Remove verified-stale Git index locks during ordinary reads and refreshes instead of treating the checkout as dirty forever.
- Repair a missing portable source database through the standard reset-pull and reclone flow instead of returning a permanent stat error.
- Report writable-command redirects to portable runtime mirrors on stderr and expose
db_target,db_target_path, andportable_source_dbinsync,refresh,fill-pr-details, andportable pruneJSON output. - Publish the pruned database and manifest back to the portable checkout by default so the documented publishing flow cannot commit stale data, with
--no-publishavailable for mirror-only pruning. - Remove temporary SQLite
-waland-shmsidecars after atomic copies and sweep orphaned aged temp files from portable runtime mirror directories.
- Update
github.com/mattn/go-isattyto 0.0.24 andgithub.com/mattn/go-runewidthto 0.0.27.
- Treat portable runtime mirrors without pruned sync history as stale so
search issues|prs --sync-if-stalecan migrate and refresh them instead of failing on a missingsync_runstable.
- Keep
doctor --jsonread-only for Git-backed portable stores by inspecting committed source databases as immutable SQLite files without leaving-walor-shmsidecars in the checkout.
- Update the current golden-test helpers,
golang.org/x/exp, andmodernc.org/libcpatch release.
- Close the wave-5 archive data-loss class: partial child responses no longer erase retained pull-request history, and local writes to portable runtime mirrors now survive later commands.
- Preserve comments, pull-request reviews, review threads, and commit references as explicit tombstones; comments and review threads retain edit history, and child hydration now merges by identity so only a sourced deletion event deletes an item while a later live observation restores it.
- Preserve migrated writable runtime mirrors across portable-store commands, validate their SQLite health independently from the immutable source manifest, and report compatible schema-v4 portable sources as current.
- Refresh the Go dependency closure to current releases for Unicode text handling, the modernc runtime, diff and golden-test helpers, profiling, and Go tooling.
- Update
golang.org/x/textto v0.40.0,modernc.org/libcto v1.74.2, andmodernc.org/gc/v3to v3.1.5. - Update
github.com/alecthomas/reprto v0.5.4,github.com/aymanbagabas/go-udiffto v0.4.1,github.com/stretchr/objxto v0.5.3, and the currentx/exp,x/tools, golden-test, and pprof revisions. - Keep CrawlKit on its latest v0.14.3 release and confirm every direct Go dependency, pinned build tool, and GitHub Action is current.
- Ship both official macOS architectures through hardened-runtime Foundation signing, Apple notarization, and independent post-packaging verification before release.
- Route embedding and semantic-search traffic through an optional embedding-only OpenAI-compatible endpoint while preserving the shared endpoint fallback. Thanks @larroy.
- Sign each Darwin target as a temporary candidate with the stable
org.openclaw.gitcrawlrequirement, hardened runtime, and trusted timestamp, replacing GoReleaser output only after notarization succeeds. - Submit every signed candidate in an ephemeral ZIP, require an accepted Apple response with a valid submission ID, and verify the online notarized requirement before packaging.
- Re-verify the Foundation and notarized requirements on both extracted macOS release archives so packaging cannot silently lose artifact trust.
- Add
embed_base_url,GITCRAWL_EMBED_BASE_URL, andgitcrawl configure --embed-base-urlfor embedding-only endpoint routing, with doctor output and documented fallback order. Thanks @larroy.
- Update CrawlKit to v0.14.3, Alpine to 3.24,
actions/setup-nodeto v7, govulncheck to v1.6.0, and deadcode to v0.48.0.
- Publish cloud archives as content-addressed snapshots through isolated staging, resumable upload, and an explicitly verified reader cutover instead of mutating serving state in place.
- Make revision enrichment and PR/workflow hydration monotonic and evidence-bound so stale, partial, or reordered observations cannot replace newer accepted archive state.
- Add fleet-aware bounded PR-detail hydration with a configurable shared-token GitHub rate-limit floor. Thanks @TurboTheTurtle.
- Add a durable sync failure ledger while excluding it from portable exports by default and redacting error text when explicitly included. Thanks @TurboTheTurtle.
- Stage content-addressed snapshot bundles under isolated identities, stream large SQLite archives in chunks, resume incomplete uploads across processes, tolerate concurrent publishers, and preserve the current reader until explicit cutover.
- Require compatible reader queries, export schemas, complete enrichment and PR-file coverage, readable chunk hydration, scoped credentials, and snapshot-capable manifests before any remote mutation; operators can explicitly accept incomplete enrichment with
--allow-incomplete. - Bind staging, resume, publication acknowledgements, bundle digests, status, and post-cutover verification to the publisher's exact snapshot ID so a newer concurrent candidate cannot be mistaken for owned work.
- Update CrawlKit to v0.14.2 for the reviewed snapshot publication APIs.
- Materialize canonical thread revisions and bind key summaries, embeddings, coverage, and clusters to the latest fully hydrated evidence while rejecting stale, divergent, incomplete, or obsolete projections.
- Track source, fetch, parent, and child evidence clocks with durable observation generations; atomically reserve hydration families and preserve accepted evidence across tied timestamps, delayed arrivals, portable archives, and migrations.
- Fence workflow snapshots by pull-request head and accepted evidence generation, commit sibling runs atomically, preserve verified deletions, and reject regressed or resurrected workflow state.
- Make schema convergence and recovery atomic while preserving legacy freshness floors, observation tuples, portable truncation metadata, incomplete hydration state, and the highest migrated workflow fences.
- Reuse legacy
llm_key_3linesummaries as canonical key-summary evidence, then remove only byte-identical legacy copies from portable exports so archives stay below GitHub's blob limit without regenerating equivalent work or discarding distinct evidence. - Honor issue draft transitions, hydrate overlap closures, and preserve partial cluster memberships when limited or incomplete inputs cannot justify a full replacement.
- Add
gitcrawl fill-pr-detailsfor bounded, resumable hydration of missing PR details, probing the shared token's live/rate_limitquota before each guarded request and preserving a configurable reserve. Thanks @TurboTheTurtle. - Add
gitcrawl sync-failuresand durable retry/resolution tracking; portable exports drop the ledger by default, redact opted-in errors, and securely rewrite current, deleted, and interrupted failure history. Thanks @TurboTheTurtle. - Ignore cross-repository issue and pull request URLs when building deterministic local cluster edges while preserving documented unqualified
issues/123andpull/123references. Thanks @GongYuanCaiJi. - Ignore stray ancestor
.gitdirectories when resolving local databases while preserving verified legacy portable-store worktrees and fail-closed probe errors. Thanks @morluto.
- Verify draft release inventories through exact release and asset API identities while keeping validation operations read-only.
- Update
golang.org/x/systo v0.47.0,modernc.org/sqliteto v1.54.0,github.com/mattn/go-isattyto v0.0.23, andgithub.com/alecthomas/kongto v1.16.0, and replace the unreleased Lip Gloss pseudo-version with stable v1.1.0. - Update
actions/setup-goto v7 and TruffleHog to v3.95.9.
- Add local, fail-closed packaging and independent verification for official macOS archives signed as
org.openclaw.gitcrawlbyDeveloper ID Application: OpenClaw Foundation (FWJYW4S8P8), while keeping CI and cross-platform snapshots credential-free and non-publishing. - Require Go 1.26.5 for the standard-library TLS security fix and add a vulnerability scan to CI.
- Update CrawlKit to the signed v0.13.4 patch release.
- Update CrawlKit to v0.13.3 for TOML recursion, panic, and deeply nested input hardening.
- Resolve relative
gitcrawl initdatabase, runtime, and portable-store filesystem paths before saving them so later SQLite commands open the intended files instead of failing on an invalid URI, and reject unsupported SQLite URI or in-memory--dbvalues. - Add
gitcrawl doctor --locks --jsonfor read-only SQLite health, sidecar state, and best-effort writer-process diagnostics, keeping archive health distinct from detected activity. Thanks @TurboTheTurtle. - Add read-only per-repository archive coverage reporting with JSON/table output, repository and missing-PR-detail filters, hydration counts, and explicit failure-ledger availability. Thanks @TurboTheTurtle.
- Report the active executable/build identity and read-only database schema compatibility in
gitcrawl doctor --json, including actionable drift diagnostics without applying migrations. Thanks @TurboTheTurtle. - Document the first-run local maintainer archive workflow, including targeted PR hydration, bounded-staleness search, run inspection, and the Octopool boundary. Thanks @TurboTheTurtle.
- Drain large Cloudflare D1 table resets before sending row batches so
gitcrawl cloud publishcan tolerate bounded Worker resets.
- Compact portable thread label and assignee metadata during store pruning so
gitcrawl-storerefreshes keep GitHub archive payloads below GitHub blob limits.
- Use CrawlKit's shared safe tokenized FTS5 query and SQL LIKE builders, treating
%,_, and backslashes literally in fallback searches, and update CrawlKit to v0.13.0. - Preserve duplicate PR file entries returned by GitHub, including removed and added files sharing one path, as position-keyed snapshots. Thanks @joshka.
- Add
gitcrawl init --runtime-dirfor fully isolated temporary database, cache, vector, and log paths. Thanks @joshka.
- Use platform-native default config, data, cache, and log paths for new installs while preserving existing
~/.config/gitcrawlinstalls until the new platform path exists; macOS uses Application Support and Caches, while Linux continues to honor XDG base directory variables, thanks @joshka. - Update
crawlkitto v0.12.2 for Windows SQLite path support and security hardening; bearer-authenticated non-local remote endpoints now require HTTPS, while loopback HTTP remains supported for local development.
- Update
crawlkitto v0.12.0. - Add configurable
vector_backendselection for semantic search and neighbors, including optional Pythonturbovecsupport when embedding dimensions are divisible by 8, thanks @vincentkoc. - Mirror the local SQLite archive into the Worker-backed R2 object store during
gitcrawl cloud publish, then compress it as a gzip chunk bundle with a manifest so fallback/bootstrap data is smaller and can grow past single-object upload limits. - Bound portable-store Git subprocess cancellation so stale fetch helpers cannot hang read-only commands, and expose the last portable refresh failure in
gitcrawl doctor --json. - Backfill a missing or stale source embedding for
gitcrawl neighborswith a one-row capped embedding request, and show the exact cheapgitcrawl embed --number ... --limit 1recovery command when no OpenAI key is configured. - Add PR-aware thread indexing for changed paths and commit subjects, plus
gitcrawl code indexandsearch --scope code|allfor bounded local full-text search over tracked monorepo source files.
- Add Cloudflare remote archive scaffolding with
[remote]config,gitcrawl init --remote, GitHub-backedremote loginwith OAuth or token-env bootstrap, remote identity/archive/status commands, cloud-mode search against Worker named queries, andgitcrawl cloud publishingestion without creating a local SQLite database for readers. - Add
ghweb fallback reads and move thegitcrawl ghcompatibility cache to Octopool, with a migration error that points users atoctopool loginandoctopool gh .... - Add an optional TUI focus layout, configurable with
gitcrawl tui --layout focus,tui.default_layout, orGITCRAWL_TUI_LAYOUT, thanks @RomneyDa. - Add
gitcrawl clusters-reportfor Markdown or JSON cluster triage reports, and restore TUI detail-pane keyboard and wheel scrolling, thanks @RomneyDa.
- Improve gh-shim cache hit rates for API projections, explicit
--cachereads, broad run-list fallbacks, stable dated searches,pr checks --watch=false, common local PR view fields, enrichedpr list --jsonfields, and cached pull-request API reads.
- Keep the highlighted member selected in the TUI when the cluster list auto-refreshes, is manually refreshed, or is re-sorted/filtered, instead of silently snapping the selection back to the first row.
- Make the TUI detail pane scrollable again with the keyboard, mouse wheel, and trackpad; its viewport content was only set on the render copy, so the live pane never had anything to scroll.
- Update
crawlkitto v0.8.0. - Retry transient SQLite busy/locked cache writes during sync and keep gh-shim auto-hydration quiet so live fallback reads do not surface scary local cache lock noise.
- Add cached release checks with
gitcrawl check-updateand passive terminal notices when a newer OpenClaw release is available.
- Harden portable-store publishing and reads with manifest integrity checks, temp-DB validation before runtime replacement, stale Git lock cleanup, reclone fallback, and richer
doctorDB health output. - Repair malformed portable-store SQLite caches by preserving the bad DB, resetting/pulling the store checkout, and recopying a healthy runtime mirror before local reads continue.
- Replay GitHub request bodies on rate-limit retries so GraphQL POST retries keep their JSON payload.
- Send GitHub Enterprise GraphQL requests to
/api/graphqlwhen the REST API base URL ends in/api/v3. - Reject durable cluster saves with empty member lists instead of leaving stale active memberships.
- Preserve multiple thread embeddings for the same thread when basis or model differs.
- Preserve OpenAI retry backoff defaults when callers provide partial retry overrides.
- Preserve existing comment text in search documents during metadata-only syncs.
- Keep comment and PR-detail sync writes atomic when GitHub hydration fails, avoiding partial cache rows without a run record.
- Fail PR-detail syncs when GitHub review-thread hydration fails instead of recording a successful partial refresh.
- Consume the shared
openclaw/crawlkitvector and portable-mirror helpers from gitcrawl. - Route OpenAI embedding requests through the shared
openclaw/crawlkit/embedprovider while preserving gitcrawl retry and error handling. - Fetch all paginated GitHub review-thread comments instead of keeping only the first review-thread comment page.
- Keep
gh xcache gcfrom expiring stable PR diff cache entries with the short fallback TTL while the PR head SHA is unchanged. - Fall back or fail for unsupported local
gh pr checksandgh runJSON fields instead of silently omitting them. - Refuse to use the running
gitcrawlexecutable as the realghbackend, including hard-linked shim paths, to avoid recursive gh-shim fallthrough. - Report duplicate OpenAI embedding response indexes explicitly instead of letting a later row overwrite an earlier vector.
- Keep cosine similarity stable for very large finite vectors instead of dropping them after float overflow.
- Allow cluster detail reads to target raw-run or durable-cluster IDs explicitly, avoiding collisions between the two ID namespaces.
- Keep active durable cluster representatives on visible open members instead of closed or hidden historical members.
- Avoid holding SQLite write transactions open while hydrating PR details from GitHub.
- Skip PR check-run and workflow-run hydration when GitHub returns no PR head SHA, avoiding broad workflow-run fetches.
- Ignore cluster graph edges whose endpoints are absent from the visible node set, preventing hidden nodes from merging otherwise separate clusters.
- Make direct
gitcrawl search --mode semanticuse query embeddings and--mode hybridcombine semantic and keyword hits instead of relabeling keyword-only search. - Remove the search-only
--sync-if-staleflag fromgitcrawl refreshhelp text. - Ignore cross-repository
owner/repo#numberreferences when building deterministic cluster edges for the current repository. - Reject non-finite CLI float options such as
NaNbefore commands can mutate local cluster state. - Fetch all paginated GitHub check runs and workflow runs instead of only the first 100 rows.
- Fix GitHub Enterprise pagination when API
Linkheaders include the/api/v3base path, avoiding duplicated paths on follow-up pages. - Retire durable clusters that disappear from a successful clustering run, while still preserving local close overrides across reclustering.
- Derive the default vector directory from custom database paths, including
GITCRAWL_DB_PATH, so separate stores do not share embeddings unlessvector_diris set explicitly. - Refuse to refresh a portable store checkout when its Git remote does not match the requested portable store, avoiding accidental resets of unrelated working trees.
- Ignore non-finite vector similarity scores so malformed embeddings cannot surface as neighbors.
- Docker: add a local image with
/datapersistence and CI smoke coverage. - Make the
ghshim forceGETfor GitHub Search API field calls sogh api search/* -f q=...agent invocations do not fall through asPOST.
- Add cache-backed
gh pr statusreadiness summaries with compact JSON, agent-oriented exit codes, and exact PR hydration that stores GitHub review threads instead of relying only on flattened review comments. - Make gh-shim Actions/release reads liveness-aware: broad
gh run listnow falls through to live GitHub unless it is pinned to a commit or cached PR branch, cached CI/release reads print a stderr provenance note, and--livebypasses shim/cache state. - Record short-lived liveness tombstones after mutating
gh run,gh workflow,gh release, and matchinggh apicalls so immediate status/release checks bypass stale fallthrough cache entries. - Expose shim/backend paths, live mode, liveness tombstones, and live bypass counters in
gh xcache stats.
- Move top-level CLI parsing and
gh xcacheargument parsing onto Kong while keeping the broaderghshim pass-through compatible with GitHub CLI argument shapes. - Keep
gh xcache --helpdiscoverable and makestats --since, JSON output, and snapshot reset parsing share one typed parser path. - Teach the
ghshim about the shared GitHub token rate-limit budget, serve stale successful reads more aggressively when that pooled budget is low, preserve GitHub CLI--jqhandling for cached fallthrough reads, and expose low-budget stale hits inxcache stats. - Avoid extra
gh auth tokensubprocesses during low-budget cache preflight checks.
- Fix gh-shim portable-store auto-hydration so exact issue/PR refreshes write to the runtime mirror instead of dirtying the Git checkout, clear stale portable refresh locks, and make empty open issue discovery fall through when only targeted sync history exists.
- Keep
cluster-detailaligned with the default cluster list by showing closed historical members unless--hide-closedis passed, and fail fast whenGITCRAWL_GH_PATHpoints back at thegitcrawlshim.
- Bump routine release workflow dependencies.
- Add a repo-local
gitcrawlagent skill for local archive, freshness, gh-shim, cluster, and verification workflows. - Accept full GitHub issue and pull request URLs anywhere
gitcrawlexpects a thread number, including sync filters, gh-shim views/diffs, governance commands, neighbor lookup, embedding, and TUI jumps. - Document read-only SQLite query examples in the repo-local agent skill so agents can do exact local archive counts without mutating state.
- Document the crawlkit control surface now available on
main, includingmetadata --json,status --json, anddoctor --jsonfor local launchers and CI. - Clarify that
gitcrawl tuiremains the reference terminal browser for the crawl app family while sharedcrawlkit/tuiconverges on the same panes, sorting, action menus, and status chrome. - Add command-reference coverage for the read-only metadata/status commands.
- Add broader CLI, gh-shim, TUI, and store regression coverage for the verified release surface.
- Improve
ghshim cache coordination and observability with stale-while-revalidate reads, finer Actions/API TTLs, recent-window stats, top miss keys, andxcache snapshot.
- Add Homebrew tap installation via
brew install openclaw/tap/gitcrawl. - Improve the
ghshim cache with canonicalized keys, targeted mutation invalidation, stale-on-rate-limit fallback reads, completed-run TTLs, hit-rate stats, counter reset, and issue auto-hydration. - Add dark-mode support, a theme toggle, and clearer navigation styling to the generated docs site.
- Force embedding refreshes when the embedding input rune cap changes, so stale larger-cap vectors are not reused.
- Expand the
ghshim with local list filters, PR diff caching by cached head SHA, xcache GC, hit/miss/write counters, and throttled portable-store refreshes to reduce GitHub API pressure across agent sessions. - Add explicit PR-detail hydration for files, commits, checks, and workflow runs so
gh pr view,gh pr checks, andgh run list/viewcan answer common review reads from the existing SQLite cache. - Auto-hydrate one exact pull request when local PR detail reads miss or check/run data is stale, using
gh auth tokenifGITHUB_TOKENis absent, then retry from SQLite before falling back to livegh. - Cache more ghx-style read-only fallthroughs, including release, workflow, secret, variable, project, ruleset, gist, org, and search reads; cache repeat read failures by default; and clear the fallthrough cache after the corresponding mutating
ghcommands. - Promote portable backups to the v2 format: keep compact comments, PR files, commits, checks, and workflow runs while stripping raw JSON, generated documents, vectors, clusters, and run history.
- Add crawlkit control metadata/status surfaces with command-local
metadata --json,status --json, anddoctor --json. - Include the primary SQLite database inventory in status JSON so local control surfaces can discover archive storage without opening live stores.
- Route config path handling and SQLite openers through
crawlkitso GitHub archive tooling shares the same foundation as the Slack, Discord, and Notion crawlers. - Keep shared crawl app TUI nomenclature aligned while
gitcrawl tuiremains the richer cluster-browser reference implementation. - Keep the existing
gitcrawl tuias the family reference terminal interface and add CI smoke coverage for its help surface.
- Polish the TUI cluster browser interaction model, including separate cluster/member action menus, softer row state colors, stable viewport refresh, bidirectional age sorting, and buffered trackpad scrolling.
- Add OpenAI embedding retry handling for transient failures and cap oversized embedding inputs before sending them upstream.
- Improve GitHub pagination and retry behavior by surfacing page totals and honoring retry and rate-limit response headers.
- Harden human-key hash parsing and tidy the module graph.
- Fix portable store refreshes when local Git pull configuration tries to rebase onto multiple branch merge refs.
- Honor
GITCRAWL_GITHUB_BASE_URLandGITHUB_BASE_URLduringgitcrawl sync, matching cached search and test-server workflows. - Fix cached
search issues|prsagainst portable stores by using portable-safe thread body and raw JSON columns. - Keep read-only portable-store commands responsive when the backing Git remote is unavailable by making refresh best-effort and non-interactive with bounded SSH connection attempts.
- Add
gitcrawl sync --numbersfor exact issue and pull request hydration, including comment documents, without relying on list ordering or updated-time windows. - Implement
gitcrawl refreshandgitcrawl embedso synced repositories can generate OpenAI embeddings and rebuild durable clusters end to end. - Add
gitcrawl sync --state open|closed|allso incremental backups can refresh recently closed issues and pull requests. - Default
gitcrawl syncto--state all, keeping closed issue and pull request state fresh unless a narrower state is requested. - Let
gitcrawl searchfall back to compact thread title/body data when portable stores have pruned generated document indexes. - Refresh clean portable-store checkouts before read-only commands so
search,threads, clusters, and the TUI see freshly published GitHub backup data automatically. - Refresh portable-store status and clear stale SQLite sidecars so
doctorand local queries report freshly pulled backup data instead of stale sync metadata. - Open writable runtime mirrors for portable-store configs so
gitcrawl embed,refresh, and semantic neighbor generation can persist local vectors without mutating the GitHub backup checkout. - Show active primary cluster memberships by default in
clusters,durable-clusters, and the TUI, with--include-closedreserved for historical audit views. - Split generated clusters with bounded nearest-neighbor graph safeguards, GitHub reference evidence, and cross-kind score pruning so weak similarity bridges stop merging unrelated reports into one mega-cluster.
- Tighten clustering precision by ignoring ambiguous one-digit prose references and requiring weak embedding edges to share concrete title tokens unless they have high similarity or direct GitHub reference evidence.
- Treat later body-only issue references as weak evidence unless they share title overlap, while still preserving title and lead-body references for canonical issue/PR fix clusters.
- Hide GitHub-closed members from latest-run cluster summaries and details by default;
--include-closedstill shows the full historical cluster. - Add release plumbing for GitHub release archives via GoReleaser.