You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(status): mirror checked_at/is_prerelease in status update object; mark FR-002 delta follow-up
Review follow-ups on the US1 status slice (specs/079-upgrade-nudge):
- StatusUpdateInfo now carries checked_at (RFC 3339 string, staleness
signal for consumers of `status -o json`) and is_prerelease, so it is
an accurate mirror of the /api/v1/info update object as the code
comment and docs claim (FR-019/FR-021). Extraction + JSON wire-format
tests extended; docs example updated.
- Added explicit TODO(spec-079/FR-002) markers at the two surfaces that
will grow the "N releases / M weeks behind" delta (statusVersionSuffix
and the checker's one-shot Info log). The delta needs the release list
+ publish dates, which the checker does not fetch yet — owned by a
later 079 slice, intentionally not in this one.
- FR-004 once-per-version (vs once-per-process) Info announce is kept
as-is: the operative clause is "MUST NOT repeatedly log the same
availability on a timer", and per-version re-announce matches the
Web UI banner's per-version dismissal semantics (FR-005); a genuinely
newer release is new information. Locked in by checker_test.go.
Testing: go test -race ./internal/updatecheck/... ./cmd/mcpproxy/...;
golangci-lint v2 (.github/.golangci.yml) on touched packages: clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@@ -151,6 +152,8 @@ When the daemon is running, `status` surfaces the result of the background updat
151
152
-**Up to date**: `Version: v1.3.0 (latest)`
152
153
-**Check failed or not yet completed** (offline, rate-limited): the version is shown without any annotation. In JSON output the `update.check_error` field retains the failure reason for diagnostics.
153
154
155
+
In machine-readable output (`-o json`/`-o yaml`) the `update` object also carries `checked_at` (when the last successful check ran, so consumers can judge staleness) and `is_prerelease` (whether the offered version is a prerelease), matching the `/api/v1/info` contract.
156
+
154
157
## API Key Masking
155
158
156
159
By default, the API key is masked showing only the first 4 and last 4 characters:
0 commit comments