Commit Graph

221 Commits

Author SHA1 Message Date
Vincent Koc
e1c3044b27
fix(tui): polish cluster browser interactions (#8)
Some checks failed
CI / Go / ${{ matrix.os }} (macos-latest) (push) Has been cancelled
CI / Go / ${{ matrix.os }} (ubuntu-latest) (push) Has been cancelled
* fix(tui): separate action menu contexts

* style(tui): tune open row palette

* fix(tui): preserve cluster viewport on refresh

* style(tui): soften selected row contrast

* fix(tui): toggle age sort direction

* fix(tui): buffer trackpad wheel bursts
2026-05-01 04:56:23 -07:00
Dallin Romney
940f940f79
feat(embed): retry transient embedding errors (#6)
* feat(embed): retry transient embedding errors and survive partial failures

Classify OpenAI embedding errors into a typed APIError and retry
transient ones (429, 5xx, network timeouts) with Retry-After-aware
exponential backoff and jitter; longer base for overloaded_error.
insufficient_quota, 4xx, and ctx errors surface immediately.

Replace abort-on-first-error with a per-batch retry queue: each batch
retries once with fresh backoff and the rest keep going. Final run
status is success / partial / error / cancelled, and stats_json carries
retries plus per-batch failure metadata for diagnostics.

* fix(embed): avoid final retry sleep

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-30 23:35:21 -07:00
Dallin Romney
fbc807c568
feat(github): show total page count in pagination logs (#7)
Parses rel="last" from the Link header, and for the cursor-paginated
issues listing falls back to open_issues_count from the prior GetRepo
response. Logs read "page 3/7 fetched count=100 accumulated=300" when a
total is known and remain "page 3 ..." otherwise.
2026-04-30 23:33:07 -07:00
Dallin Romney
330f492666
feat(github): retry on X-RateLimit-Remaining and Retry-After in client.do (#5)
Single chokepoint Client.do now inspects the response on 403/429 and,
when the headers say we're rate-limited (X-RateLimit-Remaining=0 or a
Retry-After value), sleeps until the reset and retries once. The sleep
honors ctx cancellation, so callers bound the wait with
context.WithTimeout if they want a deadline.

RequestError gains a Headers field so the retry decision can read the
underlying response without re-fetching.
2026-04-30 23:32:52 -07:00
Vincent Koc
b1411e8760
Update README.md 2026-04-30 18:16:48 -07:00
Vincent Koc
1c4f08a94c
fix(embed): cap crawler embedding inputs
Some checks are pending
CI / Go / ${{ matrix.os }} (macos-latest) (push) Waiting to run
CI / Go / ${{ matrix.os }} (ubuntu-latest) (push) Waiting to run
2026-04-30 03:05:25 -07:00
Vincent Koc
9445f91228
chore(deps): tidy module graph 2026-04-30 02:44:07 -07:00
Vincent Koc
0284bea1de
fix(security): bound human key hash parsing 2026-04-30 02:38:53 -07:00
Vincent Koc
bb31e8f63e
fix(embed): cap oversized embedding inputs
Fixes #2
2026-04-30 02:29:00 -07:00
Vincent Koc
607472cd02
fix(tui): stabilize fast wheel scrolling 2026-04-29 22:45:01 -07:00
Vincent Koc
081df086d5
merge feat/tui-context-menu
* feat/tui-context-menu:
  feat(tui): open rows on double click
  feat(tui): enable hover for floating menu
  fix(tui): preserve working set on refresh
  fix(tui): clamp member scroll and footer width
  fix(tui): preserve rows under floating menu
  chore(tui): advertise right click menu
  test(tui): cover floating action menu
  feat(tui): float action menu on right click
2026-04-29 22:36:46 -07:00
Peter Steinberger
ccd9ce6976
chore: release 0.1.1 2026-04-30 04:56:29 +01:00
Peter Steinberger
96da39e012
fix(cli): avoid pull config for portable refresh 2026-04-30 04:55:27 +01:00
Peter Steinberger
dd04208e5d
test: raise gitcrawl coverage above eighty five percent 2026-04-30 04:48:36 +01:00
Peter Steinberger
1e5e2bfb64
refactor: remove unused scan and row formatting helpers 2026-04-30 04:48:34 +01:00
Peter Steinberger
016e71c06c
fix(cli): honor GitHub API base URL during sync 2026-04-30 04:48:32 +01:00
Peter Steinberger
a9e3ecc3ec
fix: keep portable search responsive 2026-04-30 04:11:21 +01:00
Vincent Koc
6327ecdc68
feat(tui): open rows on double click 2026-04-29 19:41:32 -07:00
Vincent Koc
c462ff5ee2
feat(tui): enable hover for floating menu 2026-04-29 19:34:50 -07:00
Peter Steinberger
4031408b0e
release: v0.1.0 2026-04-30 03:31:50 +01:00
Peter Steinberger
cabc3318d8
fix: refresh portable gitcrawl stores 2026-04-30 03:26:57 +01:00
Vincent Koc
ead798dcf2
fix(tui): preserve working set on refresh 2026-04-29 19:19:30 -07:00
Vincent Koc
fa3e56e1db
fix(tui): clamp member scroll and footer width 2026-04-29 18:45:19 -07:00
Vincent Koc
b2a52f4418
fix(tui): preserve rows under floating menu 2026-04-29 14:49:02 -07:00
Vincent Koc
effa6566a6
chore(tui): advertise right click menu 2026-04-29 14:26:05 -07:00
Vincent Koc
aef75a266a
test(tui): cover floating action menu 2026-04-29 14:24:13 -07:00
Vincent Koc
9340812740
feat(tui): float action menu on right click 2026-04-29 14:22:42 -07:00
Peter Steinberger
fdef74b910
feat: add targeted issue sync
Some checks failed
CI / Go / ${{ matrix.os }} (macos-latest) (push) Has been cancelled
CI / Go / ${{ matrix.os }} (ubuntu-latest) (push) Has been cancelled
2026-04-29 12:29:19 +01:00
Peter Steinberger
bae22a73a2
fix: keep portable runtime writable 2026-04-29 06:23:15 +01:00
Vincent Koc
40ac3358e4
fix(tui): refresh remote stores atomically 2026-04-28 21:14:26 -07:00
Vincent Koc
6678a14bb0
fix(tui): show database source in footer 2026-04-28 20:10:46 -07:00
Vincent Koc
4f4cacedab
fix(tui): strip emoji from rendered titles 2026-04-28 18:09:42 -07:00
Vincent Koc
039e1927ca
fix(tui): stabilize cluster browser rendering 2026-04-28 18:07:10 -07:00
Vincent Koc
a418ffaca6
fix(cluster): align sync and clustering parity
## Summary
- align gitcrawl sync, portable read support, embeddings, durable clusters, and TUI cluster display with ghcrawl behavior
- add clearer TUI cluster state text for open vs closed rows

## Validation
- go test ./...
- GitHub CI run 25082322968 passed on ubuntu-latest and macos-latest
2026-04-28 16:09:20 -07:00
Peter Steinberger
9699301575
feat: refresh stale cached searches 2026-04-28 21:59:15 +01:00
Peter Steinberger
9b5e168ce5
feat: add gh-compatible cached search 2026-04-28 21:57:34 +01:00
Peter Steinberger
67861b5d32
fix: hide closed run cluster members
Some checks are pending
CI / Go / ${{ matrix.os }} (macos-latest) (push) Waiting to run
CI / Go / ${{ matrix.os }} (ubuntu-latest) (push) Waiting to run
2026-04-28 11:23:59 +01:00
Peter Steinberger
fa45854597
fix: refine cluster reference evidence 2026-04-28 11:23:54 +01:00
Peter Steinberger
d60c18c2a9
fix: tighten cluster edge precision 2026-04-28 11:01:05 +01:00
Peter Steinberger
746eda48c6
fix: improve cluster graph quality 2026-04-28 10:53:50 +01:00
Peter Steinberger
269a50d536
feat: implement refresh embeddings 2026-04-28 10:20:43 +01:00
Peter Steinberger
58c76ab891
fix: sync all github thread states by default 2026-04-28 00:04:19 +01:00
Peter Steinberger
69ae81e366
fix: refresh portable store before reads 2026-04-27 23:55:06 +01:00
Peter Steinberger
d35845f959
fix: make gitcrawl portable search usable 2026-04-27 23:48:12 +01:00
Vincent Koc
da68251083
fix: use ghcrawl cluster names 2026-04-27 15:39:22 -07:00
Vincent Koc
f42b6166d5
fix: match ghcrawl cluster views 2026-04-27 15:35:57 -07:00
Vincent Koc
0ea4f8f74f
fix: refresh dirty portable store cache 2026-04-27 15:19:09 -07:00
Vincent Koc
36b3822b90
feat: alias durable cluster commands 2026-04-27 14:54:19 -07:00
Vincent Koc
6b6b29fe05
docs: document cluster command 2026-04-27 14:50:56 -07:00
Vincent Koc
f6027f761e
fix: use thread numbers for cluster keys 2026-04-27 14:50:19 -07:00