Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
135 commits in all time
Aug 04, 2026 22:24 – Nov 02, 2026 22:24 UTC
fix(upgrade): report what changed, surface apt errors, refresh the signing key
- Compare the installed algod version before and after the upgrade and say "upgraded from X to Y", "already up to date" or "finished", instead of always claiming success. - Read apt-get update output: fail on errors from the Algorand repository and on fatal apt errors (locks, malformed sources), warn on everything else. apt exits 0 on signature failures when lists are cached, so the exit code alone hides them. - Before updating, compare the installed Algorand apt key with the published one. If it has expired, rotated or been revoked, show the installed key and the merged result and ask y/N; --accept-new-key answers yes for unattended runs. Only keyrings that hold just the pinned Algorand primary key, in the standard keyring directories, are touched. - Fail with a clear message when no enabled apt repository provides the algorand package and nothing was upgraded. - On macOS read the installed version from brew info --json=v2.
f2a44022
fix/upgrade-feedback
14/1,893 ++ 16 --
fix: keep the lines a rotation writes during the --follow replay
Scan took the live log's size and offset by path, and Follow reopened it by path and caught a swap only when the new file was shorter than the offset. A rotation while the history was replaying lost what was written to the old file in the meantime. If the new file had already grown past the offset, its head was lost too, with no rotation notice. Now that -f replays the whole history by default, that window lasts as long as the replay. Scan now opens the live log once, reads it only through that handle, and returns the handle for Follow to carry on from. Follow reads the old file to its end before it moves to the new one. An archive path the rotation has pointed at the live log is skipped rather than read twice.
0ab57034
fix/logs-follow-lines
9/360 ++ 121 --
docs: say what --since 0s leaves in the --follow backlog
--since 0s was described as a stream that starts at now, but Keep never drops a line without a timestamp, and --since bounds the region read rather than each line in it. Crash output near the end of the log is still replayed. The help text, man page and decision record now say that it skips the timestamped history, and a test pins the plain-text case.
2dcff6c5
fix/logs-follow-lines
4/37 ++ 7 --
fix: pass the http client to the genesis downloads
Both genesis downloads reached for a package-level client, so a test had no way to point them at a mock server. Take an api.HttpPkgInterface like the release checks, the catchpoint lookup and the short links already do. GetGenesis has no callers; handleDataDirMac gets the client from algod.Install, which the install and bootstrap commands now supply. Drop main_test.go with it. A test binary is not linked as package main, so the linker never stamps main.version there and both sides of the comparison were the same "dev" default: the test passed whether or not init handed the version over. api/useragent_test.go covers SetVersion.
16c8fc2a
feat/user-agent
6/12 ++ 27 --
feat: identify nodekit via user-agent
Every outbound request went out as Go's default "Go-http-client/1.1", which tells a node operator reading their algod access log, or the GitHub release API, nothing about what is calling them. Send "Nodekit v<version>" instead, built from the version the linker stamps into main so that releases can be told apart. The shared HttpPkg wrapper covers the release checks, the catchpoint lookup, the short links and the upgrade download; the generated algod client gets the header through a request editor, since api/lf.go is overwritten by `make generate`.
6a73a179
feat/user-agent
8/179 ++ 7 --
fix: give --lines one meaning with and without --follow
--follow substituted a backlog of 10 when --lines was not given, so -n meant one thing alone and another beside -f: `-n 0 -f` replayed the whole history, where `tail -n 0 -f` shows none of it. --follow now replays the same set the command shows without it, --lines N shortens that backlog, and a stream that starts at now is --since 0s. The cost is that a bare -f reads the whole history before the first new entry arrives, as the command without -f already does.
e80f8602
fix/logs-follow-lines
4/97 ++ 20 --
Merge 9b9c51b256e7d12860e3d33605675c0aa21c71ca into 34f16f713cc000daecbee1609df2bf595e8713ab
5c9278ef
pull/197/merge
3/100 ++ 5 --
fix: give --lines one meaning with and without --follow
--follow substituted a backlog of 10 when --lines was not given, so -n meant one thing alone and another beside -f: `-n 0 -f` replayed the whole history, where `tail -n 0 -f` shows none of it. --follow now replays the same set the command shows without it, --lines N shortens that backlog, and a stream that starts at now is --since 0s. The cost is that a bare -f reads the whole history before the first new entry arrives, as the command without -f already does.
9e95271b
pull/201/head
4/97 ++ 20 --
fix: pass the http client to the genesis downloads
Both genesis downloads reached for a package-level client, so a test had no way to point them at a mock server. Take an api.HttpPkgInterface like the release checks, the catchpoint lookup and the short links already do. GetGenesis has no callers; handleDataDirMac gets the client from algod.Install, which the install and bootstrap commands now supply. Drop main_test.go with it. A test binary is not linked as package main, so the linker never stamps main.version there and both sides of the comparison were the same "dev" default: the test passed whether or not init handed the version over. api/useragent_test.go covers SetVersion.
e7a69a86
pull/200/head
6/12 ++ 27 --
feat: identify nodekit via user-agent
Every outbound request went out as Go's default "Go-http-client/1.1", which tells a node operator reading their algod access log, or the GitHub release API, nothing about what is calling them. Send "Nodekit v<version>" instead, built from the version the linker stamps into main so that releases can be told apart. The shared HttpPkg wrapper covers the release checks, the catchpoint lookup, the short links and the upgrade download; the generated algod client gets the header through a request editor, since api/lf.go is overwritten by `make generate`.
b3e885bf
pull/200/head
8/179 ++ 7 --