Ecosystem metrics
- New Repos
- 15
- New
- Commits
- 455
- down 26.0%
- Releases
- 6
- down 25.0%
- Contributors
- 45
- down 6.3%
- Merges
- 14
- down 17.6%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
7091 commits in all time
Jun 15, 2026 10:18 – Sep 13, 2026 10:18 UTC
Merge dc0445f206e9c635841866bd69ce8bf18551022b into b6ddd2e7768c39b427967e9d0164076523ba1a2d
944ac0c8
pull/411/merge
10/401 ++ 20 --
Added in QR modal to liquid stream host screen.
dc0445f2
pull/411/head
10/401 ++ 20 --
Merge aeecfded51874e974f15c0be98afe84f56cfee26 into b0a3e71a91adfd1dfb97b5060d054618c2a147aa
cc65d616
pull/66/merge
10/1,214 ++ 1,283 --
chore(deps): Update all non-major dependencies
aeecfded
renovate/all-non-major-dependencies
10/1,214 ++ 1,283 --
Merge 1d618cbd89b01fca06df4d463e7cbb1f7b995472 into 3f80455969769b54b0effc691e3cc0c422138c01
fc14f741
pull/6732/merge
2/43 ++ 2 --
config: don't fail restart when stateproof/crash DBs are already in HotDataDir
moveDirIfExists refused to proceed whenever the destination files existed, even if there was nothing in ColdDataDir to move. After the first run the node creates stateproof.sqlite and crash.sqlite in HotDataDir, so every subsequent startup with separate hot and cold dirs failed with "destination file ... already exists, not overwriting". Return early when none of the files exist in the source directory, and add a regression test for the restart case.
1d618cbd
pull/6732/head
2/43 ++ 2 --
Merge 6f83759d4cf49d9fbea131fc43486f2c38572b5a into 7861a68efdc034d4a01f5ba68f1acff97e28e8e6
dc4a1f55
pull/454/merge
15/1,419 ++ 974 --
chore(deps): update non-major dependencies
6f83759d
renovate/non-major-dependencies
15/1,419 ++ 974 --
Merge 5aabaff7805d4411b18d03fca1e4e6a4bdf0753a into 361d3066ffaca4241991cc6563403417bf562ecf
183ed321
pull/17/merge
4/3,364 ++ 1,957 --
fix(deps): update all non-major dependencies
5aabaff7
renovate/all-minor-patch
4/3,364 ++ 1,957 --
docs: record the truncation Follow cannot see
Size against offset only catches a truncation that is still visible when the poll arrives. A file emptied and written back past the old offset inside one interval never looks short, and the next drain reads new bytes at a stale position: the prefix is lost and a pending fragment of the old file is spliced onto what followed. Polling has no way to close that. Nothing separates a truncate-and-regrow from an append once the inode is unchanged and the length has recovered, so the alternative is a different mechanism rather than a better check. The window is one interval wide, algod rotates by renaming, and tail -F has the same hole; it is left open on purpose, and now says so. The truncation test slept to stay out of that window without explaining which window, which read as timing noise rather than as the point. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PqPSx1wqM8rMdo4EHPa4jy
b3678bbd
pull/193/head
2/21 ++ 1 --
fix: do not file a callback error under Skipped
streamOne returns a failure to read the file and a failure inside the caller's callback down one path, and behind the live log streamSources treated both as an unreadable archive. A callback that failed while an archive was open had its error recorded as the archive's, and the scan carried on into the newer files and returned nil. That lost a cancellation or a closed pipe outright, and reported a hole in a history that had been read perfectly well. The n > 0 path has always returned the callback's error directly; the two halves of Scan disagreed about their own contract. Callback errors are tagged so they can be told apart and returned. The existing test passed a single live source, so the branch that swallowed them had never been read by it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PqPSx1wqM8rMdo4EHPa4jy
e5920516
pull/193/head
2/48 ++ 1 --
fix: quote a field name that would split the rendered line
Render's one-line guarantee was only half enforced. Values were escaped and keys were concatenated raw, but a field name is decoded from the same JSON object the value is, and an object key may hold anything a JSON string can. A key carrying a newline split one entry across two physical lines, which is the defect the value quoting was there to prevent. The predicate moves into quoteIfNeeded and both halves of the pair go through it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PqPSx1wqM8rMdo4EHPa4jy
b2275cd5
pull/193/head
2/40 ++ 17 --
Merge 343c68f6005b86e29be1da9ce82c62200aa3b2cb into e7bb69c5e53773a525bbb626fbbfb7a68ef411de
c33f162d
pull/195/merge
2/47 ++ 3 --
fix: show date only for distant expirations
343c68f6
pull/195/head
2/47 ++ 3 --
Merge a6abe2c3d943f0382243b619e2ab6c6d6a87e5c0 into e7bb69c5e53773a525bbb626fbbfb7a68ef411de
3defd97a
pull/197/merge
3/79 ++ 4 --
fix: re-exec updated nodekit before algod upgrade
a6abe2c3
pull/197/head
3/79 ++ 4 --
Merge 441d90d8139e4198785a78645bc98288011ca599 into ae593f700fcba41d7f4accba74cf33549a96c3f4
8432e09f
pull/355/merge
42/11,810 ++ 0 --