Skip to content

new-adapter-next: credential-redaction rule + slicer cfg-gate reuse (Wave 2 learnings) - #541

Merged
0-jake-0 merged 1 commit into
nextfrom
claude/next-skill-secrets-slicer
Jul 25, 2026
Merged

new-adapter-next: credential-redaction rule + slicer cfg-gate reuse (Wave 2 learnings)#541
0-jake-0 merged 1 commit into
nextfrom
claude/next-skill-secrets-slicer

Conversation

@0-jake-0

Copy link
Copy Markdown
Contributor

Two skill additions distilled from the Wave 2 ports (postgres #539, zmq #540).

Changes to new-adapter-next

  1. Credential-redaction invariant (fallibility section). A connection string / DSN / URL often embeds a password or token, and .context("connecting to {conn}") would spill it into logs and the graph-abort error. The skill now requires a redacted() method on the connection config, used at every connect() error site, with a no-service test asserting the raw secret never appears. This generalizes the classic postgres password-redaction fix (Redact password from postgres connection errors #433) to every networked adapter (redis, kafka, zmq, kdb, …) so it isn't rediscovered per port.

  2. Time-slicer cfg-gate reuse (the "caller-parameterised time range" invariant). postgres ported compute_validated_time_slices into common.rs but had to gate it #[cfg(feature = "postgres")] (an unknown kdb cfg would trip unexpected_cfgs). The reusing adapter must widen that gate to #[cfg(any(feature = "postgres", feature = "$ARGUMENTS"))], not duplicate the slicer — and postgres's reader (query each slice at wiring → clamp via WindowFilter → feed replay_results) is named as the template. This directly unblocks the kdb port (Wave 3).

Docs-only change to .claude/commands/new-adapter-next.md.


🤖 Generated with Claude Code


Generated by Claude Code

…Wave 2 learnings)

Two additions distilled from the Wave 2 ports (postgres/zmq):

- Credential-redaction invariant in the fallibility section: never embed a
  password/token/DSN in error context; give the connection config a redacted()
  method and use it at every connect() error site, with a no-service test that
  the raw secret never leaks. Generalizes the classic postgres fix (#433) to
  every networked adapter.
- Time-slicer cfg-gate reuse: the second time-partitioned adapter must WIDEN the
  shared slicer's #[cfg(any(feature = ...))] gate rather than duplicate it
  (postgres left compute_validated_time_slices gated postgres-only because a kdb
  cfg didn't exist yet), and postgres's query-at-wiring -> WindowFilter ->
  replay_results reader is named as the template. Directly unblocks the kdb port.

Docs-only change to .claude/commands/new-adapter-next.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SEQvysabaSKTnYyQDgPDTt
@0-jake-0
0-jake-0 merged commit 02fddcb into next Jul 25, 2026
4 checks passed
@0-jake-0
0-jake-0 deleted the claude/next-skill-secrets-slicer branch July 25, 2026 21:28
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