Repository navigation
fix: review fixes 2026-11-12 — declared hosts, sign-in lock, cli-core 0.648.0 helpers, own-catalogue pins - #165
Merged
Merged
Conversation
…om npm (review 2026-11-12)
- DEBT-335 / BUG-748 (WC-CMD-32): sign-in, the Google account lookup, server
discovery (ISPDB, autoconfig) and the sender score's RDAP lookups go through
cli-base hostFetch. DESKTOP lists the fixed hosts, including the IMAP and SMTP
servers of every built-in provider; userHosts names the mail server, the
domain's autoconfig file and the registry IANA's list gives. Each discovery
and RDAP call may reach only its own host, so an off-host redirect is refused.
contracts/wirecat.json is generated in `generate` and shipped; the
raw-network baseline is gone; help links and OAuth scope URLs are honest
undeclared-host overrides (override budget 16 -> 30).
- BUG-754.c: sign-ins.json is read, changed and written under cli-core's
acquireLock, waiting up to 10 s for another sign-in.
- DEBT-338: the upgrade contract resolves the previous published version
itself (`"previous": {}`); the schema notice is a diagnosticPattern;
contracts/previous is removed. mcp-tools.json in cli-testing 0.7.0 short form.
- DEBT-341: AGENTS.md names mail-cli as the mail reference CLI.
- cli-base 0.98.0, cli-testing 0.7.0; stale lint baseline rows and overrides
removed; Dependabot groups Actions updates.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…check; skip the lock when no record goes The smoke refused any path under contracts/ in files; the manifest is the one file Desktop reads from the tarball (WC-CMD-29), as in b24. recordSignIn again touches no disk when there is nothing to remove. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, pin only mail's own MCP commands - DEBT-336: openMailStore is cli-core's openAppStore; the Google OAuth provider is cli-core's googleProvider (same endpoints and parameters). - IDEA-288: the MCP catalogue pin is ownCatalogue (mail's own commands), plus explicit invariants: no session start or store reset over MCP, schedule run|exec are writes (cli-core's family rule, keys schedule.run/exec at ask). - Google's refused account lookup carries mail.google-account-refused, so cli-core 0.648.0's unknown-profile rewrite (FIND-2583) does not turn it into "no profile named ..." during session start. - The generated-unit test runs with an absolute-only PATH: pnpm adds ./node_modules/.bin, and cli-core 0.648.0 refuses a schedule saved with it. - Actions pins: pnpm/action-setup v6.1.1, cli-base node-ci and release-checks v0.93.0 (Dependabot #159-#161). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This was referenced Nov 13, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task
Review fixes for mail from the CLI family review of 2026-11-12 (report
2026-11-12-cli-family-review.mdin cli-private): DEBT-335, BUG-748, BUG-754.c, DEBT-336, IDEA-288, DEBT-338, DEBT-341, plus adoption of cli-core 0.648.0, cli-base 0.98.0 and cli-testing 0.7.0.Why
fetchand declared no hosts, so WireCat Desktop could not show where its data goes, and cli-base 0.98.0's raw-network lint flagged discovery and the sender score (WC-CMD-32).sign-ins.jsonwas read, changed and written with no lock, so two sign-ins at once could lose one record.What
hostFetch.DESKTOPlists the fixed hosts, including every built-in provider's IMAP and SMTP server (a test keeps the list in step).userHostsnames the person's mail server, their domain's autoconfig file and the registries from IANA's list; each of those calls may reach only its own host.contracts/wirecat.jsonis generated, checked and shipped. The raw-network baseline is gone. 17 printed help links and OAuth scope URLs areundeclared-hostoverrides with reasons, so the override budget goes from 16 to 30.sign-ins.jsonchanges under cli-core'sacquireLock, waiting up to 10 s.openMailStore→openAppStore; the Google provider → cli-core'sgoogleProvider. The codec stays: cli-core 0.648.0 has nogoogleSignInyet.mcp-catalogue.jsonpins only mail's own commands (ownCatalogue), plus explicit invariants: nosession startand nostore resetover MCP;schedule run|execare writes, per cli-core's default (schedule.run/schedule.execatask).mcp-tools.jsonis in cli-testing 0.7.0's short form."previous": {}), and the schema notice is a pattern.contracts/previous/is removed.AGENTS.mdnames mail-cli as the reference CLI for mail.mail.google-account-refused, so the new unknown-profile answer does not turn a new profile's refused sign-in into "no profile named …". The generated-unit test runs with an absolute-only PATH, because pnpm adds./node_modules/.binand cli-core now refuses a schedule saved with it.Not changed, with reasons:
session start --provider: WC-ACCT-8 names no replacement word.backoffMs;retrying()wraps an HTTP fetch.cancel-in-progress: false.Testing
Local, on Node 24:
standards:check, lint, typecheck,test:coverage(358 tests),lint:commands,audit:commands,contracts:check,contracts:upgrade(previous 0.24.0),docs:check,generate:check,security:no-leak,package:check(packed install finds the manifest),test:matrix:check. No live check: mail keeps no live record, and nothing ran against a real mailbox.🤖 Generated with Claude Code