Skip to content

Update module github.com/grpc-ecosystem/go-grpc-middleware to v2 - #6

Merged
bootjp merged 1 commit into
mainfrom
renovate/github.com-grpc-ecosystem-go-grpc-middleware-2.x
Dec 1, 2023
Merged

Update module github.com/grpc-ecosystem/go-grpc-middleware to v2#6
bootjp merged 1 commit into
mainfrom
renovate/github.com-grpc-ecosystem-go-grpc-middleware-2.x

Conversation

@renovate

@renovaterenovateBot commented Dec 1, 2023

Copy link
Copy Markdown
Contributor

Mend Renovate logo banner

This PR contains the following updates:

PackageTypeUpdateChange
github.com/grpc-ecosystem/go-grpc-middlewarerequiremajorv1.4.0 -> v2.0.1

Release Notes

grpc-ecosystem/go-grpc-middleware (github.com/grpc-ecosystem/go-grpc-middleware)

v2.0.1

Compare Source

What's Changed

New Contributors

Full Changelog: grpc-ecosystem/go-grpc-middleware@v2.0.0...v2.0.1

v2.0.0

Compare Source

This is the first stable release of the new v2 release branch 🎉

Many of the interceptors have been rewritten from scratch and the project has been upgraded to use the Go Protobuf v2 API.

See the project README for details and migration guide. Thanks to all contributors who made this possible! 💪🏽

What's Changed

New Contributors

Full Changelog: grpc-ecosystem/go-grpc-middleware@v1.4.0...v2.0.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@bootjp
bootjp merged commit 9b77e0a into mainDec 1, 2023
@bootjp
bootjp deleted the renovate/github.com-grpc-ecosystem-go-grpc-middleware-2.x branch December 6, 2023 14:32
bootjp added a commit that referenced this pull request Apr 26, 2026
Three of the six items from Claude bot's round-1 review were
already shipped in 9e3e44d (RowsInput stuck-when-cleared bug,
fillRect comment, time-axis label overlap). Round-2 covers the
remaining medium/minor items:
- design doc 4.3: drop the stale "single-pass ImageData.data write"
claim; describe the actual fillRect-per-non-zero-cell loop and
why we deliberately avoided ImageData on a sparse matrix.
- design doc 3.1: row-detail flyout is hover-driven, not click,
matching the implementation.
- design doc 4.2: document the time-axis stride floor that landed
in code at 9e3e44d, so the doc explains why ceil(56 / cellW)
is part of the formula.
- KeyViz.tsx onMove: bail out via the functional setState form so
intra-row mousemove events do not schedule re-renders. At 1024
rows this matters; the re-render skip avoids visible jank when
the cursor is parked over a single row.
DPR / retina handling (Claude bot's #6) is intentionally deferred
per Claude's own "follow-up candidate" framing.
bootjp added a commit that referenced this pull request Apr 30, 2026
…e[bot] Must Fix x3 + Should/Minor)
gemini-code-assist High #1+#2: Pre-cache cipher.AEAD inside Keystore. AES key expansion + GCM init was happening on every Encrypt/Decrypt -- a measurable hot-path regression. Keystore internal map switches from map[uint32][]byte to map[uint32]*keyEntry holding both [KeySize]byte dek and the pre-init cipher.AEAD. New AEAD(keyID) (cipher.AEAD, bool) lookup runs on the hot path; aes.NewCipher / cipher.NewGCM happen once at Set time.
claude[bot] Must Fix#2: Keystore.Get returned a slice into the live map; a caller violating the "MUST NOT mutate" contract would corrupt the active DEK silently. Replaced Get with DEK(keyID) ([KeySize]byte, bool) returning a value copy by virtue of the array type. The signature itself enforces immutability of the live entry.
claude[bot] Must Fix#1: Cipher.Encrypt doc gains a CRITICAL nonce-reuse warning. Under AES-GCM, reusing (key, nonce) leaks plaintext XOR and enables authentication-key recovery; the §4.1 deterministic node_id || local_epoch || write_count construction is the supported uniqueness scheme.
claude[bot] Must Fix#3: Added TestCipher_Decrypt_RejectsReservedKeyID and TestCipher_Decrypt_RejectsBadNonceSize so both Encrypt and Decrypt entry points have explicit coverage of ReservedKeyID and bad-nonce-size rejection.
claude[bot] Should Fix#4: EnvelopeVersionV1 doc clarified -- the §11.3 reserved range 0x02..0x0F is for FUTURE decoders; the current build accepts only 0x01 and rejects everything else (including the reserved range) with ErrEnvelopeVersion.
claude[bot] Should Fix#5: Envelope.Encode() now validates Version and Body length and returns (bytes, error). Bad inputs fail fast at build time (ErrEnvelopeVersion / ErrEnvelopeShort) instead of producing undecodable bytes that surface later as a confusing read-side failure.
gemini-code-assist Medium #3: New AppendHeaderAADBytes(dst, version, flag, key_id) lets storage callers compose AAD onto a pooled buffer without allocating. HeaderAADBytes is now a thin wrapper over AppendHeaderAADBytes.
claude[bot] Minor #6: sort.Slice -> slices.Sort in Keystore.IDs (Go 1.25 idiomatic, no closure allocation).
claude[bot] Minor #7: FileWrapper.Name() now returns "file:<path>" so log lines and the EncryptionAdmin status RPC can distinguish multiple configured KEK files.
claude[bot] Minor #8: Removed unreachable post-Open length check in FileWrapper.Unwrap; the input-length check above already guarantees Open returns exactly fileKEKSize bytes on success. Replaced with an explanatory comment.
Tests: 28 unit + 2 property tests, -race clean, 0 lint issues against the project .golangci.yaml.
bootjp added a commit that referenced this pull request May 21, 2026
Six items called out across Codex P2, Gemini medium x2, and Claude bot
on PR #798:
1. Codex P2 / Gemini medium / Bot bug #3 - clipboard write_text fires
in non-secure contexts. Add capability check
(navigator.clipboard?.writeText) and a try/catch around the await;
on failure fall back to window.prompt with the JSON pre-selected so
the operator can Ctrl/Cmd+C it manually. Surface the failure in a
text-danger line so the action no longer silently fails.
2. Gemini medium - formatBytes used base 1024 but labelled kB/MB. Use
KiB/MiB. (kB/MB are decimal SI units; the code multiplies by 1024.)
3. Bot accuracy #4 - the truncation display used message.body.length
which is JavaScript's UTF-16 code-unit count, not bytes. The
server applies BodyMaxBytes against raw UTF-8 so non-ASCII bodies
(CJK, emoji) under-reported. Add utf8ByteLength(s) using TextEncoder
and use it in the display.
4. Bot bug #2 - purgeRetryAfter was hardcoded to 60 regardless of the
actual remaining cooldown. formatApiError already includes the
server's "only one PurgeQueue per 60 seconds" message, so removed
the state entirely.
5. Bot bug #1 - setLoading(false) in `finally` ran even when `catch`
returned early on AbortError. Move setLoading out of finally into
the explicit success and non-abort error branches so unmounted
components don't get the state update.
6. Bot minor #6 - distilled the multi-line comment blocks on
writePurgeInProgress, SqsPeekedAttribute, SqsPeekedMessage,
SqsPeekResult, peekQueue, and purgeQueue to single-line summaries
per CLAUDE.md conventions.
Caller audit (semantic-change rule): no signature changes; the
clipboard / formatBytes / utf8ByteLength helpers are private to
SqsDetail.tsx; purgeRetryAfter removal touches only the same file.
Verification:
- cd web/admin && npm run lint passes
- go test -race ./internal/admin/... passes
- golangci-lint run ./internal/admin/... 0 issues
Rebased onto main (Phase 4 PR #797 merged).
bootjp added a commit that referenced this pull request May 26, 2026
…ad timing, barrier semantics, resolved open questions)
Folds the PR #835 round-1 design review into the 7a proposed doc:
- Critical #1 (timing): the registration-intent decision must run
post-buildShardGroups (same phase as chainEncryptionStartupGuard),
not in buildEncryptionWriteWiring — the default-group registry store
isn't open until buildShardGroups returns. The epoch bump stays
pre-buildShardGroups; the registry intent runs after.
- #2 (registry handle): commit to threading the default-group
WriterRegistryStore out of buildShardGroups (it already builds one
per shard) rather than a new runtime/applier accessor.
- #3 (async shutdown): the propose goroutine selects on both the apply
signal and the process run-context, never closing the barrier on an
uncommitted registration — no leak.
- #4 (Dispatch seam): gate condition gated on hasMutatingElems
(PUT/DEL/DEL_PREFIX), so read-only txns with only ReadKeys stay
ungated; reads are structurally excluded.
- #5 (barrier three-state): explicit nil (ungated) / open (pending,
gated) / closed (committed) semantic; channel armed before gRPC
starts; nil checked first to avoid a forever-block receive.
- #6 (multi-shard): node-global barrier; a group-2 write waits on the
group-1 registration commit — correct, DEK-wide not shard-scoped.
- #7/#8 (wording + snapshot): closed-channel fast path is a select
branch (not an atomic load); snapshot/compaction interaction noted.
The three original open questions are resolved per the reviewer's
recommendations (Dispatch / chan struct{} / async). Implementation
follows in a separate 7a PR.
bootjp added a commit that referenced this pull request May 26, 2026
…ut-committed registration releases barrier (codex P2)
codex P2 #6: a Propose attempt can time out (the waiter is removed)
yet Raft still applies the entry, so under consistently
>registrationAttemptTimeout commit latency every attempt would return
deadline-exceeded → retry forever → barrier never closes despite
durable registration.
runWriterRegistration now verifies-before-propose each iteration:
re-reads the local registry last_seen via a verifyRegistered closure
(built in buildProcessStartRegistrationGate from the default-group
store) and closes the barrier when last_seen >= our epoch — covering
both a prior timed-out-but-committed attempt and a registration that
landed via another path. The first iteration sees last_seen < epoch
(why we're proposing); a subsequent iteration after a committed-but-
timed-out attempt observes the advance and releases.
Test: TestRunWriterRegistration_VerifyCommittedClosesBarrier (verify
true → barrier closes without reaching propose).
bootjp added a commit that referenced this pull request May 28, 2026
Five findings from coderabbit + claude bot on commit 96223e9.
- persist-credentials: false on the checkout step (zizmor `artipacked`,
coderabbit Major, claude #3). The job does not push anything and the
subsequent github-script step uses secrets.GITHUB_TOKEN explicitly,
so the persisted credential is dead weight that a compromised later
step could otherwise reuse.
- MD040 language tag on the §7.3 chain-diagram fence (coderabbit Minor,
claude #1). Tagged as `text`.
- Re-draw the chain diagram so it visually shows tla-check.yml and
tla-spec-ai-review.yml fire in parallel rather than implying a
sequential chain (claude #6).
- Sync-point count corrected from "three" to "four":
(1) tla-check.yml paths, (2) tla-spec-ai-review.yml paths,
(3) the ANCHORS regex in tla-spec-ai-review.yml,
(4) the §7.3 list (claude #5). Both the doc prose and the inline
workflow comment now enumerate explicitly.
- Inline comment in the workflow explaining why `ready_for_review` is
in the trigger types here but not in tla-check.yml (claude #4): an
AI review request is cheap on draft→ready transitions; a redundant
TLC run is not.
Skipped (consistent with repo-wide convention, separate hardening
pass): pinning actions/checkout@v6 and actions/github-script@v7 to
commit SHAs. tla-check.yml and every other workflow in this repo
floats on major version tags; introducing SHA pins here alone would
be inconsistent.
actionlint clean.
Sign up for freeto 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.

1 participant

@bootjp