Skip to content

Fix client identity isolation and status reporting (#50–#54) - #55

Merged
Vonng merged 1 commit into
mainfrom
codex/mcli-50-54-production-acceptance
Oct 26, 2026
Merged

Vonng merged 1 commit into
mainfrom
codex/mcli-50-54-production-acceptance

Conversation

@Vonng

@Vonng Vonng commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Description

S3 and admin clients now keep distinct identities and connection configurations isolated. Resync mutations report partial failures, status commands retain terminal results and tolerate missing live metrics, and batch IOPs no longer overflow at large object counts.

  • Compare full client configuration, pin credential sources across refreshes, and retain immutable transport settings. Cache hits reuse snapshots without certificate/map copies or proxy parsing; concurrent lookups share safely.
  • Return nonzero for partial resync start/cancel failures while preserving the original JSON response and bucket errors.
  • End resync observation on Completed, Canceled or Failed, and emit a result when replication is disabled.
  • Emit pending batch status, continue observing, and use bounded persisted-status fallback when live metrics remain unavailable. Preserve completion/failure query semantics and cancel workers on exit.
  • Divide the floating-point object count by elapsed seconds before rendering IOPs.

Closes #50
Closes #51
Closes #52
Closes #53
Closes #54

Motivation and Context

The selected alias must determine request identity. HTTP success alone does not establish mutation success, and missing metrics do not establish job completion. No dependency changes are required.

Intentional CLI changes: partial mutations exit nonzero; batch JSON may emit pending; missing batch telemetry is bounded by a 30-second idle window and 10-second status requests. Successfully retrieving a completed or failed job still exits 0.

How to test this PR?

Local acceptance passed on the identical source tree:

  • Full go test -race on Go 1.27.3: 989 test/subtest pass events on darwin/arm64 and 985 on linux/arm64. The Linux permission test skipped under root passed separately as UID 1000; the macOS-only skip is a Linux-specific exit-status test covered on Linux.
  • Real SILO 20261018 HTTPS functional suite, 42 shell functional groups, 20 independent CLI/PTY protocol cases and 25 Linux arm64/amd64 container runtime checks, including cross-alias authorization isolation.
  • Credential refresh, token rotation, cancellation, static fallback and redaction tests; 64 concurrent credential reads use one retrieval, with another only after forced expiration.
  • Populated-cache S3 benchmark: 22.8 us / 35.2 KB per lookup before optimization, 3.9 us / 2.5 KB after. Main is 3.2 us / 7.7 KB; retained CA equality costs about 0.7 us in this serial case. Seven alternating 1000-stat HTTPS runs showed a 9.6% lower median elapsed time than main.
  • Lint, module verification/tidy, dependency floors, branding/credits, release scripts and make install; govulncheck reports no reachable or imported-package vulnerabilities.
  • Six-platform snapshot archives and six RPM/DEB/APK packages verified for provenance, checksums and payload; both Linux container images built and run locally. No publication performed.

Before merging, require the PR's Go (Linux/macOS/Windows and Linux 386), Crosscompile, VulnCheck, DCO and Test Release Pipeline workflows to pass. Local AWS tests use protocol fixtures; Linux amd64 container execution used Docker Desktop emulation. No distributed queue saturation or production soak claim is made.

Types of changes

  • Bug fix
  • Optimization
  • New feature

Checklist

Contribution Licensing (no CLA, inbound=outbound, DCO required)

This pull request contributes to PGSTY SILO mcli (pgsty/mc). Code contributions
are accepted under AGPL-3.0-or-later, the same license as the client.
This project does not use a CLA or require a separate Apache-2.0 license grant.
By submitting this pull request I represent that I have the right to contribute
the code changes under this repository's
GNU AGPL v3.0 or later
and retain copyright in my original work. Existing copyright and license
notices remain intact; separately licensed material keeps its applicable terms.
Every commit must carry a DCO Signed-off-by
trailer (git commit -s) certifying the
Developer Certificate of Origin —
see CONTRIBUTING.md.

Keep S3 and admin cache entries separate for distinct credentials, providers
and connection settings while avoiding per-hit transport copies. Correct
partial resync operation exits, terminal resync and pending batch observation,
and batch IOPs overflow; add regression tests and cache benchmarks.

Closes #50
Closes #51
Closes #52
Closes #53
Closes #54

Signed-off-by: Feng Ruohang <rh@vonng.com>
@Vonng
Vonng merged commit 24eb117 into main Oct 26, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment