Skip to content

fix(privacy): redact MiMo login diagnostics - #1267

Merged
bloodf merged 12 commits into
mainfrom
v5/1088
Oct 21, 2026
Merged

bloodf merged 12 commits into
mainfrom
v5/1088

Conversation

@bloodf

@bloodf bloodf commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Current integration checkpoint — 2026-10-21

Append-only head c3a0a8be9f1aca1617deb43881bf1937132b93d9, base 66b05ea5072c1fe4d6fece43972dd274712a4407. Content-free transport diagnostics preserve warning/debug levels, allowlisted codes and phase-two status. Independent source review passed. First full attempt hit unchanged 300000ms build ceiling collecting traces; retained failed receipt. Fresh full retry on unchanged head passed all43 records:12,883 passed,0 failed,66 pending, lint/build/website/docs/catalog/inventory/commitlint pass. Receipt 9ec25db0c1b4ec60a3c4affb5de94d607f20c908ad28d9c27f6ab16bea185212. No limits or predicates weakened, no baseline additions. No live-login claim.

MiMo authentication diagnostics now emit content-free structured events with local correlation IDs, bounded status and upstream numeric codes, and allowlisted transport codes. Credential-bearing URLs, bodies, exceptions and cookies are not serialized into these events; shared exchange waiters retain separate correlation identities.

Refs #1088.

Validation recorded on 66d4f054b9c8df4744c51090c36f09f2e58b41ab: 22 passed, 0 failed, 0 pending across 2 selected test files, using Node 20.20.2/npm 10.8.2 on macOS arm64. Synthetic token, cookie, authorization-code and proxy-error controls exercise session/account/proxy/start paths and shared exchange diagnostics. Captured log arguments retain the expected safe diagnostic fields and exclude fabricated secrets. Independent source review accepted that exact head and authenticated its focused receipt.

Current candidate: 168d83c426c7e6087ac70d3eedea5551fab9de49, based on main e94884312ff6651f80d13f1c862e54a916bc870e. The only later delta is the shared macOS temporary-path fixture correction in tests/unit/local-ci.test.js; production source is unchanged from the reviewed head. Earlier focused counts are not an exact-current-head full-suite result.

Current-head full checkpoint: PASS. Independently authenticated 168d83c426c7e6087ac70d3eedea5551fab9de49 against main e94884312ff6651f80d13f1c862e54a916bc870e: 1,424 eligible test files in four sequential batches; 12,566 passed, 0 failed, 65 reviewed conditional skips. Skipped assertions were not executed and are not counted as passes. Root lint, production build, repository consistency checks and pinned commit-range/title lint passed; Website build was not required by the reviewed path policy for this change. Receipt SHA-256: c3cbc4d96deadcd0adfd9d69cacb754c8cd1e1222e30593c344ea8cf390fb978. Runner SHA-256: b36fdc5c0c0c1797770e49e95ab994642960be26766d865f0869a13737693bf3. Source continuity: exact first-comment normalization independently verified; all remaining bundle bytes match HEAD. The external reviewed runner reused only hash-verified independent copies of matching locked dependency installations. This is offline gate evidence; live-provider, deployment and other platform acceptance remain limited to separately recorded tests.

Evidence uses isolated synthetic authentication boundaries. Live upstream login or account availability is not claimed.

Preserved prior PR description and historical evidence

The following is historical context; current scope and verification above supersede stale readiness, gate, dependency and environment claims. Earlier counts apply only to their named heads.

Scope

fix(privacy): redact MiMo login diagnostics

Related issue: #1088. Acceptance remains tracked separately.

Changed files

  • src/lib/mimoLoginSession.js
  • tests/unit/xiaomi-mimo-login-redaction.test.js

Local evidence

  • Checkpoint: 6c2932d committed;24focused,12331full,anti-slop corrected,review no findings,actual takeover smoke200 no secrets; not merged
  • Full-suite metadata: 12331 passed / 0 failed / 66 pending of 12397 (tests/.test-results.json, metadata only)
  • Docs: no documentation files changed
  • No baseline additions.

Status

Draft. Not integrated with other branches; CI pending. Publication commitlint gate blocked locally (missing @commitlint/config-conventional). Not ready to merge until final publication gates and CI pass.

Review readiness update — 2026-10-09

Ready for review of the stated, finished PR scope; not ready to merge. This update supersedes earlier draft/parent-only publication wording without removing the original body or user notes.

  • Audited head: 6c2932d0d4f83aba80fde5cdf15515f2494975ad; current main at audit: e51ab1c089800c2a70587822189997c482f53654.
  • Required V5 Local CI: missing. No success status is published by this update.
  • Merge requires actual full-CI success for the final exact head, strict up-to-date main, required reviews and resolved review threads. Any rebase or new head invalidates previous head-bound evidence.
  • Missing administrator/confinement proof blocks the serial full-CI/merge path, not review readiness. No gate is waived; no build or test was run for this update.

Retained implementation evidence supports review of the stated PR scope. Historical test counts and older successful checks do not establish integration with current main or a current full-CI pass. Prior local publication notes are historical; no gates were rerun by this delivery worker.

Keep credential-bearing URLs, bodies, errors and session state out of logs.
Use independent correlation IDs and allowlisted diagnostic metadata.

Refs #1088
@vercel

vercel Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
durindoor Ready Ready Preview Oct 21, 2026 5:44pm UTC

Request Review

…sion

Covers src/proxy.js proxy error log and open-sse/shared/mimoAccount.js exchange logs (#1088). Fails until those logs are redacted.
Route src/proxy.js and mimoAccount.js failure logs through logDiagnostic so bodies, URLs, cookies, messages and stacks are never logged (#1088).
Log a content-free diagnostic and return a fixed 500 message instead of raw error.message (#1088).
@bloodf bloodf added area:security Credential safety, privacy and authorization priority:P1 First: correctness, safety or accounting risk type:bug Verified existing behavior defect labels Oct 19, 2026 — with ChatGPT Codex Connector
(cherry picked from commit 42267fb63e70e5d7c49e571230347ff2beb88f29)
@bloodf
bloodf merged commit 2c40ea7 into main Oct 21, 2026
3 checks passed

This branch was successfully deployed

1 active deployment
Preview — c3a0a8be Deployed Oct 21, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:security Credential safety, privacy and authorization priority:P1 First: correctness, safety or accounting risk type:bug Verified existing behavior defect

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant