Skip to content

daemon: no routine warnings at start; the app store's lines carry a level - #526

Open
TeoSlayer wants to merge 1 commit into
mainfrom
fix/quiet-startup-logs
Open

TeoSlayer wants to merge 1 commit into
mainfrom
fix/quiet-startup-logs

Conversation

@TeoSlayer

Copy link
Copy Markdown
Collaborator

Problem

On a Mac, in under an hour, the daemon's log held 1,574 copies of appstore skip io.pilot.wallet: read manifest: … no such file or directory. The Mac app listed it as the top "warning the daemon repeats", along with two more routine lines.

Fix

The app store's lines carry a level.

  • The daemon passes its slog logger as Config.Slog (app-store v1.0.7, bumped here).
  • Its lines become INFO for routine ones and WARN for problems.
  • Through its default log.Logger they had no level, and the Mac app counts every level-less line as a warning.
  • v1.0.7 also logs each skipped install-root dir once rather than every 2 s, and stops the per-tick and routine warnings: refused downgrade, rescan error, uninstall, reinstall.

tunnel bound to wildcard address is gone.

  • It was a warning on every start of every default install.
  • Binding every interface is what a node does to hear its peers.
  • Its hint, -listen 127.0.0.1:0, would cut the node off.
  • The address stays in the tunnel listening line.

The catalogue pin lines go through slog.

  • A failed refresh at start is a warning.
  • The 10-minute refresh failing while offline is INFO, since the previous pins stay.

Tests

  • go build ./... and go vet pass.
  • go test -race ./cmd/... ./internal/... ./pkg/... passes.
  • The app-store side is tested in app-store#48.

./tests shows dial and datagram timeouts on this machine right now. They come from contention: a parallel soak test and post-reboot indexing. The same tests fail the same way on main without this change (checked against the commit before #510).

🤖 Generated with Claude Code

Comment thread cmd/daemon/main.go
if err := cataloguePins.Refresh(); err != nil {
if cataloguePins.LoadCache() {
log.Printf("appstore: catalogue refresh failed (%v); using %d cached publisher pin(s)", err, cataloguePins.Count())
slog.Warn(fmt.Sprintf("appstore: catalogue refresh failed (%v); using %d cached publisher pin(s)", err, cataloguePins.Count()))
Comment thread cmd/daemon/main.go
}
} else {
log.Printf("appstore: loaded %d catalogue publisher pin(s)", cataloguePins.Count())
slog.Info(fmt.Sprintf("appstore: loaded %d catalogue publisher pin(s)", cataloguePins.Count()))
@TeoSlayer
TeoSlayer force-pushed the fix/quiet-startup-logs branch from e7a4639 to 673e30e Compare October 8, 2026 13:41
…evel

- The tunnel binding every interface is what a node does, not a warning;
  it fired on every start of every default install, with a hint
  (-listen 127.0.0.1:0) that would cut the node off.
- Pass the daemon's slog logger to the app store (Config.Slog, app-store
  v1.0.7), so its lines are INFO or WARN like the rest of the log; through
  its default log.Logger they had no level and the Mac app counted all of
  them as warnings. Skipped install-root dirs are logged once.
- The catalogue pin lines go through slog too: a failed refresh at start
  is a warning; the 10-minute refresh failing while offline is INFO.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TeoSlayer
TeoSlayer force-pushed the fix/quiet-startup-logs branch from 673e30e to af1dd97 Compare October 8, 2026 14:52

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants