chore: clean up KNOWN_ISSUES — remove fixed items, renumber
This commit is contained in:
104
KNOWN_ISSUES.md
104
KNOWN_ISSUES.md
@@ -14,17 +14,7 @@ The MITM proxy matches intercepted API traffic to cascade IDs by scanning for `m
|
||||
|
||||
---
|
||||
|
||||
### ~~2. Domain Certificate Cache Is Unbounded~~ ✅ FIXED
|
||||
|
||||
**File:** `src/mitm/ca.rs` — `domain_cache`
|
||||
|
||||
~~The `domain_cache` (`HashMap<String, Arc<ServerConfig>>`) grows without bound.~~
|
||||
|
||||
**Fixed:** Added a 64-entry cap with clear-on-overflow. In practice only ~5-10 domains are ever intercepted, so this is a safety valve. Full LRU would be overkill.
|
||||
|
||||
---
|
||||
|
||||
### 3. Request Modification Not Implemented
|
||||
### 2. Request Modification Not Implemented
|
||||
|
||||
**File:** `src/mitm/proxy.rs` — `modify_requests: false`
|
||||
|
||||
@@ -34,29 +24,31 @@ The `MitmConfig.modify_requests` flag exists and is plumbed through, but no actu
|
||||
|
||||
---
|
||||
|
||||
### ~~4. `total_cost_usd` Is Dead~~ ✅ FIXED
|
||||
### 3. Polling-Based Cascade Updates vs Streaming RPC
|
||||
|
||||
**File:** `src/mitm/store.rs`
|
||||
**File:** `src/api/polling.rs`
|
||||
|
||||
~~`ApiUsage.total_cost_usd` is `Option<f64>` but is **always `None`**.~~
|
||||
We poll `GetCascadeTrajectorySteps` on a timer to check for new cascade output. The LS has a `StreamCascadeReactiveUpdates` streaming gRPC method that pushes updates in real-time. Our polling approach works but adds latency and unnecessary requests.
|
||||
|
||||
**Fixed:** Removed the field entirely from `ApiUsage` and all 3 construction sites (`proto.rs`, `intercept.rs` ×2).
|
||||
**Impact:** Functional but suboptimal. The streaming approach would give lower latency and less LS load, but requires maintaining a long-lived gRPC stream and handling reconnection.
|
||||
|
||||
**See:** `docs/ls-binary-analysis.md` → gRPC Services → LanguageServerService
|
||||
|
||||
---
|
||||
|
||||
### 4. No BYOK Model Routing
|
||||
|
||||
**File:** `src/api/models.rs`
|
||||
|
||||
The LS supports BYOK (Bring Your Own Key) variants for Claude and OpenAI models (e.g., `MODEL_CLAUDE_4_SONNET_BYOK`, `MODEL_OPENAI_COMPATIBLE`). Our proxy only exposes the 5 built-in placeholder models. Users with BYOK keys can't use them through the proxy.
|
||||
|
||||
**Fix:** Add a mechanism to register BYOK models at runtime (e.g., via a config file or API endpoint). The BYOK model IDs and their proto enum numbers are documented in `docs/ls-binary-analysis.md`.
|
||||
|
||||
---
|
||||
|
||||
## 🟢 Low
|
||||
|
||||
### ~~5. Wrapper Script Fallback Paths May Be Stale~~ ✅ FIXED
|
||||
|
||||
**File:** `scripts/mitm-wrapper.sh` — `LS_FALLBACK_DIRS`
|
||||
|
||||
~~Stale `.cursor`, `.vscode`, `.antigravity` glob patterns.~~
|
||||
|
||||
**Fixed:** Replaced with actual Antigravity install paths (`/usr/share/antigravity/`, `/opt/Antigravity/`, `~/.local/share/antigravity/`). Primary /proc-based discovery is unaffected.
|
||||
|
||||
---
|
||||
|
||||
### 6. No Integration Tests for MITM Module
|
||||
### 5. No Integration Tests for MITM Module
|
||||
|
||||
The MITM module has unit tests for protobuf decoding and intercept parsing, but no integration tests that verify:
|
||||
|
||||
@@ -68,21 +60,9 @@ The MITM module has unit tests for protobuf decoding and intercept parsing, but
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Investigation
|
||||
## Blockers
|
||||
|
||||
### ~~7. LS Exposes Credit/Quota Data via `GetUserStatus`~~ ✅ IMPLEMENTED
|
||||
|
||||
**File:** `src/quota.rs`
|
||||
|
||||
~~Investigation item.~~
|
||||
|
||||
**Implemented:** The `QuotaStore` polls `GetUserStatus` every 60s and exposes credit/quota data via `GET /v1/quota`. Shows plan info, prompt/flow credit balances, per-model remaining fraction, and reset timers.
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Blockers
|
||||
|
||||
### 8. LS Go LLM Client Ignores System TLS Trust Store
|
||||
### 6. LS Go LLM Client Ignores System TLS Trust Store
|
||||
|
||||
**File:** `docs/mitm-interception-status.md`
|
||||
|
||||
@@ -93,7 +73,7 @@ The extension patch (`detectAndUseProxy=1`) only makes the LS honor `HTTPS_PROXY
|
||||
**Potential fixes:**
|
||||
|
||||
- Binary patching the Go TLS verification (hard, breaks on updates)
|
||||
- Full standalone LS control (in progress, see issue #9)
|
||||
- Full standalone LS control (in progress, see issue #7)
|
||||
- Network namespace + iptables redirect (eliminates HTTPS_PROXY need but doesn't fix TLS trust)
|
||||
- eBPF/ptrace to inject certs at runtime (complex)
|
||||
|
||||
@@ -101,7 +81,7 @@ The extension patch (`detectAndUseProxy=1`) only makes the LS honor `HTTPS_PROXY
|
||||
|
||||
---
|
||||
|
||||
### 9. Standalone LS Cascades Silently Fail
|
||||
### 7. Standalone LS Cascades Silently Fail
|
||||
|
||||
**File:** `docs/standalone-ls-todo.md`
|
||||
|
||||
@@ -115,43 +95,3 @@ When running a standalone LS instance (outside of Antigravity), cascades start b
|
||||
- Extension server callbacks (`WriteCascadeEdit`, `ExecuteCommand`, etc.) have no handler
|
||||
|
||||
**See:** `docs/standalone-ls-todo.md` for investigation plan
|
||||
|
||||
---
|
||||
|
||||
## Medium
|
||||
|
||||
### ~~10. Extension Patch Fragility~~ ✅ FIXED
|
||||
|
||||
**File:** GEMINI.md, `docs/mitm-interception-status.md`
|
||||
|
||||
~~The `sed` patch that sets `detectAndUseProxy=1` in `extension.js` must be **re-applied after every Antigravity update**. The search pattern (`detectAndUseProxy=pe.UNSPECIFIED`) is brittle — if the minified variable name changes from `pe` to something else, the patch silently fails.~~
|
||||
|
||||
**Fixed:** Updated sed to use extended regex `s/detectAndUseProxy=[^,;)]+/detectAndUseProxy=1/g` which matches any value assignment regardless of minified variable names. Still requires re-applying after updates, but the pattern is now resilient to bundler name changes.
|
||||
|
||||
---
|
||||
|
||||
### 11. Polling-Based Cascade Updates vs Streaming RPC
|
||||
|
||||
**File:** `src/api/polling.rs`
|
||||
|
||||
We poll `GetCascadeTrajectorySteps` on a timer to check for new cascade output. The LS has a `StreamCascadeReactiveUpdates` streaming gRPC method that pushes updates in real-time. Our polling approach works but adds latency and unnecessary requests.
|
||||
|
||||
**Impact:** Functional but suboptimal. The streaming approach would give lower latency and less LS load, but requires maintaining a long-lived gRPC stream and handling reconnection.
|
||||
|
||||
**See:** `docs/ls-binary-analysis.md` → gRPC Services → LanguageServerService
|
||||
|
||||
---
|
||||
|
||||
### 12. No BYOK Model Routing
|
||||
|
||||
**File:** `src/api/models.rs`
|
||||
|
||||
The LS supports BYOK (Bring Your Own Key) variants for Claude and OpenAI models (e.g., `MODEL_CLAUDE_4_SONNET_BYOK`, `MODEL_OPENAI_COMPATIBLE`). Our proxy only exposes the 5 built-in placeholder models. Users with BYOK keys can't use them through the proxy.
|
||||
|
||||
**Fix:** Add a mechanism to register BYOK models at runtime (e.g., via a config file or API endpoint). The BYOK model IDs and their proto enum numbers are documented in `docs/ls-binary-analysis.md`.
|
||||
|
||||
---
|
||||
|
||||
### ~~13. `total_cost_usd` Could Use Pricing Table~~ ✅ RESOLVED
|
||||
|
||||
Moot — `total_cost_usd` field was removed in issue #4 fix.
|
||||
|
||||
Reference in New Issue
Block a user