Skip to content

Latest commit

 

History

History
355 lines (246 loc) · 29.8 KB

File metadata and controls

355 lines (246 loc) · 29.8 KB

Changelog

v0.9.2 - 2026-08-14

  • Update the minimum Go toolchain to 1.26.6 to resolve GO-2026-5026, GO-2026-5972, GO-2026-6090, and GO-2026-6218.

0.9.1 - 2026-08-10

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.

Portable stores

  • Add streamlined portable export generations 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 export atomically produce manifest-backed gzip generations with a separate archive byte budget, so growing portable databases stay publishable without moving compression into downstream scripts.

Dependencies and maintenance

  • Update Kong to v1.16.1.
  • Update the minimum Go toolchain to 1.26.6 for the latest standard-library security fixes.

0.9.0 - 2026-08-08

Portable stores

  • Load manifest-backed gzip SQLite artifacts into the verified runtime mirror, preserving the uncompressed size, digest, and quick_check contract when a portable database outgrows GitHub's single-file limit.

Maintenance

  • Rewrite the README around the local-first quickstart and move deeper cloud archive and Docker material into the documentation.
  • Update actions/stale to 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.

0.8.8 - 2026-08-01

Maintenance

  • 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.

0.8.7 - 2026-07-26

Portable stores

  • 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.

0.8.6 - 2026-07-26

Portable stores

  • 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.

0.8.5 - 2026-07-26

Portable stores

  • Report writable-command redirects to portable runtime mirrors on stderr and expose db_target, db_target_path, and portable_source_db in sync, refresh, fill-pr-details, and portable prune JSON 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-publish available for mirror-only pruning.
  • Remove temporary SQLite -wal and -shm sidecars after atomic copies and sweep orphaned aged temp files from portable runtime mirror directories.

Dependencies and maintenance

  • Update github.com/mattn/go-isatty to 0.0.24 and github.com/mattn/go-runewidth to 0.0.27.

0.8.4 - 2026-07-22

Cached search

  • Treat portable runtime mirrors without pruned sync history as stale so search issues|prs --sync-if-stale can migrate and refresh them instead of failing on a missing sync_runs table.

Portable diagnostics

  • Keep doctor --json read-only for Git-backed portable stores by inspecting committed source databases as immutable SQLite files without leaving -wal or -shm sidecars in the checkout.

Dependencies and maintenance

  • Update the current golden-test helpers, golang.org/x/exp, and modernc.org/libc patch release.

0.8.3 - 2026-07-20

Highlights

  • 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.

Archive integrity

  • 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.

0.8.2 - 2026-07-18

Highlights

  • Refresh the Go dependency closure to current releases for Unicode text handling, the modernc runtime, diff and golden-test helpers, profiling, and Go tooling.

Dependencies and maintenance

  • Update golang.org/x/text to v0.40.0, modernc.org/libc to v1.74.2, and modernc.org/gc/v3 to v3.1.5.
  • Update github.com/alecthomas/repr to v0.5.4, github.com/aymanbagabas/go-udiff to v0.4.1, github.com/stretchr/objx to v0.5.3, and the current x/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.

0.8.1 - 2026-07-17

Highlights

  • 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.

macOS release integrity

  • Sign each Darwin target as a temporary candidate with the stable org.openclaw.gitcrawl requirement, 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.

Configuration

  • Add embed_base_url, GITCRAWL_EMBED_BASE_URL, and gitcrawl configure --embed-base-url for embedding-only endpoint routing, with doctor output and documented fallback order. Thanks @larroy.

Dependencies and maintenance

  • Update CrawlKit to v0.14.3, Alpine to 3.24, actions/setup-node to v7, govulncheck to v1.6.0, and deadcode to v0.48.0.

0.8.0 - 2026-07-17

Highlights

  • 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.

Cloud publishing

  • 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.

Archive and enrichment integrity

  • 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_3line summaries 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.

Maintainer workflows

  • Add gitcrawl fill-pr-details for bounded, resumable hydration of missing PR details, probing the shared token's live /rate_limit quota before each guarded request and preserving a configurable reserve. Thanks @TurboTheTurtle.
  • Add gitcrawl sync-failures and 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/123 and pull/123 references. Thanks @GongYuanCaiJi.
  • Ignore stray ancestor .git directories when resolving local databases while preserving verified legacy portable-store worktrees and fail-closed probe errors. Thanks @morluto.

Release and dependency maintenance

  • Verify draft release inventories through exact release and asset API identities while keeping validation operations read-only.
  • Update golang.org/x/sys to v0.47.0, modernc.org/sqlite to v1.54.0, github.com/mattn/go-isatty to v0.0.23, and github.com/alecthomas/kong to v1.16.0, and replace the unreleased Lip Gloss pseudo-version with stable v1.1.0.
  • Update actions/setup-go to v7 and TruffleHog to v3.95.9.

0.7.1 - 2026-07-09

  • Add local, fail-closed packaging and independent verification for official macOS archives signed as org.openclaw.gitcrawl by Developer 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.

0.7.0 - 2026-07-06

  • Update CrawlKit to v0.13.3 for TOML recursion, panic, and deeply nested input hardening.
  • Resolve relative gitcrawl init database, 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 --db values.
  • Add gitcrawl doctor --locks --json for 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.

0.6.4 - 2026-06-23

  • Drain large Cloudflare D1 table resets before sending row batches so gitcrawl cloud publish can tolerate bounded Worker resets.

0.6.3 - 2026-06-23

  • Compact portable thread label and assignee metadata during store pruning so gitcrawl-store refreshes keep GitHub archive payloads below GitHub blob limits.

0.6.2 - 2026-06-19

  • 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-dir for fully isolated temporary database, cache, vector, and log paths. Thanks @joshka.

0.6.1 - 2026-06-19

  • Use platform-native default config, data, cache, and log paths for new installs while preserving existing ~/.config/gitcrawl installs until the new platform path exists; macOS uses Application Support and Caches, while Linux continues to honor XDG base directory variables, thanks @joshka.
  • Update crawlkit to 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.

0.6.0 - 2026-06-11

  • Update crawlkit to v0.12.0.
  • Add configurable vector_backend selection for semantic search and neighbors, including optional Python turbovec support 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 neighbors with a one-row capped embedding request, and show the exact cheap gitcrawl embed --number ... --limit 1 recovery command when no OpenAI key is configured.
  • Add PR-aware thread indexing for changed paths and commit subjects, plus gitcrawl code index and search --scope code|all for bounded local full-text search over tracked monorepo source files.

0.5.0 - 2026-05-27

  • Add Cloudflare remote archive scaffolding with [remote] config, gitcrawl init --remote, GitHub-backed remote login with OAuth or token-env bootstrap, remote identity/archive/status commands, cloud-mode search against Worker named queries, and gitcrawl cloud publish ingestion without creating a local SQLite database for readers.
  • Add gh web fallback reads and move the gitcrawl gh compatibility cache to Octopool, with a migration error that points users at octopool login and octopool gh ....
  • Add an optional TUI focus layout, configurable with gitcrawl tui --layout focus, tui.default_layout, or GITCRAWL_TUI_LAYOUT, thanks @RomneyDa.
  • Add gitcrawl clusters-report for Markdown or JSON cluster triage reports, and restore TUI detail-pane keyboard and wheel scrolling, thanks @RomneyDa.

0.4.5 - 2026-05-23

  • Improve gh-shim cache hit rates for API projections, explicit --cache reads, broad run-list fallbacks, stable dated searches, pr checks --watch=false, common local PR view fields, enriched pr list --json fields, and cached pull-request API reads.

0.4.4 - 2026-05-23

  • 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.

0.4.3 - 2026-05-22

  • Update crawlkit to 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.

0.4.1 - 2026-05-18

  • Add cached release checks with gitcrawl check-update and passive terminal notices when a newer OpenClaw release is available.

0.4.0 - 2026-05-17

  • Harden portable-store publishing and reads with manifest integrity checks, temp-DB validation before runtime replacement, stale Git lock cleanup, reclone fallback, and richer doctor DB 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/graphql when 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/crawlkit vector and portable-mirror helpers from gitcrawl.
  • Route OpenAI embedding requests through the shared openclaw/crawlkit/embed provider 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 gc from 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 checks and gh run JSON fields instead of silently omitting them.
  • Refuse to use the running gitcrawl executable as the real gh backend, 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 semantic use query embeddings and --mode hybrid combine semantic and keyword hits instead of relabeling keyword-only search.
  • Remove the search-only --sync-if-stale flag from gitcrawl refresh help text.
  • Ignore cross-repository owner/repo#number references when building deterministic cluster edges for the current repository.
  • Reject non-finite CLI float options such as NaN before 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 Link headers include the /api/v3 base 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 unless vector_dir is 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.

0.3.4 - 2026-05-14

  • Docker: add a local image with /data persistence and CI smoke coverage.
  • Make the gh shim force GET for GitHub Search API field calls so gh api search/* -f q=... agent invocations do not fall through as POST.

0.3.3 - 2026-05-11

  • Add cache-backed gh pr status readiness 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 list now 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 --live bypasses shim/cache state.
  • Record short-lived liveness tombstones after mutating gh run, gh workflow, gh release, and matching gh api calls 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.

0.3.2 - 2026-05-10

  • Move top-level CLI parsing and gh xcache argument parsing onto Kong while keeping the broader gh shim pass-through compatible with GitHub CLI argument shapes.
  • Keep gh xcache --help discoverable and make stats --since, JSON output, and snapshot reset parsing share one typed parser path.
  • Teach the gh shim about the shared GitHub token rate-limit budget, serve stale successful reads more aggressively when that pooled budget is low, preserve GitHub CLI --jq handling for cached fallthrough reads, and expose low-budget stale hits in xcache stats.
  • Avoid extra gh auth token subprocesses during low-budget cache preflight checks.

0.3.1 - 2026-05-08

  • 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-detail aligned with the default cluster list by showing closed historical members unless --hide-closed is passed, and fail fast when GITCRAWL_GH_PATH points back at the gitcrawl shim.

0.3.0 - 2026-05-08

  • Bump routine release workflow dependencies.
  • Add a repo-local gitcrawl agent skill for local archive, freshness, gh-shim, cluster, and verification workflows.
  • Accept full GitHub issue and pull request URLs anywhere gitcrawl expects 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, including metadata --json, status --json, and doctor --json for local launchers and CI.
  • Clarify that gitcrawl tui remains the reference terminal browser for the crawl app family while shared crawlkit/tui converges 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.

0.2.1 - 2026-05-05

  • Improve gh shim cache coordination and observability with stale-while-revalidate reads, finer Actions/API TTLs, recent-window stats, top miss keys, and xcache snapshot.

0.2.0 - 2026-05-05

  • Add Homebrew tap installation via brew install openclaw/tap/gitcrawl.
  • Improve the gh shim 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 gh shim 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, and gh run list/view can 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 token if GITHUB_TOKEN is absent, then retry from SQLite before falling back to live gh.
  • 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 gh commands.
  • 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, and doctor --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 crawlkit so GitHub archive tooling shares the same foundation as the Slack, Discord, and Notion crawlers.
  • Keep shared crawl app TUI nomenclature aligned while gitcrawl tui remains the richer cluster-browser reference implementation.
  • Keep the existing gitcrawl tui as the family reference terminal interface and add CI smoke coverage for its help surface.

0.1.2 - 2026-05-01

  • 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.

0.1.1 - 2026-04-30

  • Fix portable store refreshes when local Git pull configuration tries to rebase onto multiple branch merge refs.
  • Honor GITCRAWL_GITHUB_BASE_URL and GITHUB_BASE_URL during gitcrawl sync, matching cached search and test-server workflows.
  • Fix cached search issues|prs against 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.

0.1.0 - 2026-04-30

  • Add gitcrawl sync --numbers for exact issue and pull request hydration, including comment documents, without relying on list ordering or updated-time windows.
  • Implement gitcrawl refresh and gitcrawl embed so synced repositories can generate OpenAI embeddings and rebuild durable clusters end to end.
  • Add gitcrawl sync --state open|closed|all so incremental backups can refresh recently closed issues and pull requests.
  • Default gitcrawl sync to --state all, keeping closed issue and pull request state fresh unless a narrower state is requested.
  • Let gitcrawl search fall 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 doctor and 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-closed reserved 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-closed still shows the full historical cluster.
  • Add release plumbing for GitHub release archives via GoReleaser.