FE-737: Web shell over the same host (M3)#147
Conversation
| } | ||
|
|
||
| function websocketHandshakeResponse(key: string): string { | ||
| const accept = createHash("sha1") |
There was a problem hiding this comment.
The use of a weak cryptographic algorithm (e.g., SHA-1 or MD5) has been identified. These algorithms are considered insecure due to vulnerabilities that make them susceptible to collision attacks, allowing attackers to compromise data integrity or security. Replace SHA-1 or MD5 with secure hashing algorithms, such as: SHA-256 or higher (e.g., SHA-3).
⭐ Fixed in commit ec2f985 ⭐
PR SummaryMedium Risk Overview Session-facing reads are tightened around a canonical Brunch session envelope ( JSON-RPC dispatch/response helpers move to Planning/spec docs mark web-shell done, advance graph-data-plane, and codify D33-L (connections are client attachments, one-writer/many-observer POC) plus partial coverage updates for I19-L / I21-L. Also adds the Reviewed by Cursor Bugbot for commit 8204774. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit eab91df. Configure here.
|
|
||
| function hasRequiredSessionEntryShape(value: unknown): value is SessionEntry { | ||
| return isTranscriptEntry(value) && hasStringOrNullParentId(value) | ||
| } |
There was a problem hiding this comment.
Identical function duplicated within same file
Low Severity
hasRequiredSessionEntryShape and isSessionEntry in brunch-session-envelope.ts have identical implementations — both return isTranscriptEntry(value) && hasStringOrNullParentId(value). One of them is unnecessary and risks diverging silently if only one is updated in the future.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit eab91df. Configure here.
🤖 Augment PR SummarySummary: This PR introduces the M3 “web shell” as a native React UI served by the Brunch host, using a single WebSocket-backed JSON-RPC transport (no REST read model). Changes:
Technical Notes: Session-consuming reads now treat transport connections as ephemeral attachments; explicit 🤖 Was this summary useful? React with 👍 or 👎 |
|
|
||
| const response = JSON.parse(chunks.join("")) as JsonRpcResponse<T> | ||
| if (response.error) { | ||
| if ("error" in response) { |
There was a problem hiding this comment.
src/fixture-capture.ts:164 — Since response comes from JSON.parse without runtime validation, a malformed frame that lacks both error and result will now fall through and return undefined, which can mask protocol failures during fixture capture.
Severity: medium
⏳ Generating Fix in Augment link...
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
eab91df to
8204774
Compare
c6c33ee to
55d9122
Compare
Merge activity
|



FE-737: Start web shell frontier
FE-737 reject non-linear transcript JSONL
FE-737 fail fast on non-linear session RPC
FE-737 block TUI branch flows