docs(browser): clarify capture and remote deployment limits

This commit is contained in:
LukeParkerDev 2026-09-03 18:03:19 +10:00
parent 966e973fb9
commit 3cc7a3fb64
2 changed files with 13 additions and 3 deletions

View file

@ -60,6 +60,16 @@ Each transfer is limited to 5 MiB total. There is no shared filesystem assumptio
resumable transfer service, new socket, or object store. Browsing uses the
desktop's network: its `localhost` is not the remote server's `localhost`.
Remote endpoints can use HTTPS and the existing server credentials. A reverse
proxy must allow long-lived event and attachment requests; the attachment RPC
stays open rather than sending response-body heartbeats.
Lighthouse audits use snapshot mode without changing device emulation or adding
an embedded report screenshot; use `browser.screenshot` for images. Trace exports
contain the target renderer process, not the whole desktop application. A tab
process change or trace-buffer loss is reported as an incomplete capture. Heap
summaries report shallow size, not computed retained size, and do not prove leaks.
All page-derived data is untrusted, including structured outputs. Schema
validation does not make page text an instruction or grant it authority.

View file

@ -127,7 +127,7 @@ export const ConsoleEntry = Schema.Struct({
textTruncated: Schema.Boolean,
source: optional(Schema.Struct({ url: text, line: count, column: count })),
}).annotate({ identifier: "Browser.ConsoleEntry" })
export type ConsoleEntry = typeof ConsoleEntry.Type
export interface ConsoleEntry extends Schema.Schema.Type<typeof ConsoleEntry> {}
const snapshot = Schema.Struct({ ...page, content: text, truncated: Schema.Boolean })
const entry = Schema.Struct({ name: short, count, bytes: Schema.Finite })
const node = Schema.Struct({ id: Schema.Finite, name: text, type: short, selfBytes: count, edgeCount: count })
@ -481,11 +481,11 @@ export const Command = Schema.Struct({
generation: optional(count),
files: Schema.Array(File),
}).annotate({ identifier: "Browser.Command" })
export type Command = typeof Command.Type
export interface Command extends Schema.Schema.Type<typeof Command> {}
export const Result = Schema.Struct({ value: Schema.Json, files: Schema.Array(File) }).annotate({
identifier: "Browser.Result",
})
export type Result = typeof Result.Type
export interface Result extends Schema.Schema.Type<typeof Result> {}
export const Outcome = Schema.Union([
Schema.Struct({ type: Schema.Literal("success"), result: Result }),
Schema.Struct({ type: Schema.Literal("failure"), code: short, message: short }),