@quantiya/codevibe-gemini-plugin 1.0.15 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hooks/common.sh +30 -0
- package/package.json +2 -2
package/hooks/common.sh
CHANGED
|
@@ -3,6 +3,36 @@
|
|
|
3
3
|
# Common utilities for CodeVibe Gemini hooks
|
|
4
4
|
# This file provides shared functions for all hook scripts
|
|
5
5
|
|
|
6
|
+
# ─── Reviewer-subprocess short-circuit ───────────────────────────────
|
|
7
|
+
#
|
|
8
|
+
# When $QUORUM_REVIEWER_SUBPROCESS is set, the current `gemini`
|
|
9
|
+
# invocation is a reviewer subprocess spawned by Quorum 2.0's
|
|
10
|
+
# `GeminiReviewerProvider` (codevibe-core-rs/crates/codevibe-reviewer/
|
|
11
|
+
# src/providers/gemini.rs). Reviewer subprocesses have their own
|
|
12
|
+
# ephemeral session_id that MUST NOT interact with the user's primary
|
|
13
|
+
# Gemini session state.
|
|
14
|
+
#
|
|
15
|
+
# Without this guard, every reviewer spawn fires SessionStart →
|
|
16
|
+
# plugin's switchToResumedSession() evicts the user's primary session
|
|
17
|
+
# (marks it INACTIVE) → mobile app stops showing it. Worse, the
|
|
18
|
+
# plugin's in-memory session-key cache gets polluted and the primary
|
|
19
|
+
# session's subsequent events get encrypted with the wrong key →
|
|
20
|
+
# ciphertext on iOS. Both symptoms empirically observed on 2026-04-21
|
|
21
|
+
# when Quorum 2.0 local testing hit Hendry's primary Gemini plugin.
|
|
22
|
+
#
|
|
23
|
+
# Because `common.sh` is sourced by every hook script, `exit 0` here
|
|
24
|
+
# propagates to the hook script — Gemini CLI sees a clean hook
|
|
25
|
+
# success and continues normally. Zero-impact for normal user
|
|
26
|
+
# sessions (the env var is never set in the 1.0 code path).
|
|
27
|
+
#
|
|
28
|
+
# This change belongs on 1.0 main because it protects the 1.0
|
|
29
|
+
# primary-session-isolation invariant. The env var name is
|
|
30
|
+
# deliberately scoped `QUORUM_*` to avoid collision with other
|
|
31
|
+
# tooling and to signal its semantic origin.
|
|
32
|
+
if [ -n "$QUORUM_REVIEWER_SUBPROCESS" ]; then
|
|
33
|
+
exit 0
|
|
34
|
+
fi
|
|
35
|
+
|
|
6
36
|
# Configuration
|
|
7
37
|
# Use TMPDIR if set (macOS sets this to user-specific temp), otherwise /tmp
|
|
8
38
|
CODEVIBE_TMPDIR="${TMPDIR:-/tmp}"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quantiya/codevibe-gemini-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17",
|
|
4
4
|
"description": "Control Gemini CLI from your iPhone and Android — real-time sync, approve file edits, send prompts by voice. Part of CodeVibe.",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
6
|
"bin": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"node": ">=18.0.0"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@quantiya/codevibe-core": "^1.0.
|
|
52
|
+
"@quantiya/codevibe-core": "^1.0.14",
|
|
53
53
|
"chokidar": "^5.0.0",
|
|
54
54
|
"dotenv": "^16.6.1",
|
|
55
55
|
"express": "^5.1.0",
|