Skip to content
ProtoPeek

Workspace navigation and design

Where does each tool belong?

Stable · v0.7.0
  • Persistent tool navigation
  • Shared workspace layouts
  • Browser-tested workflows
Evidence path Where does each tool belong?
Workspace navigation and design evidence path Request to Path to Machine to Transfer Request Path Machine Transfer
One local path. Each boundary stays visible.
01 · Choose

Start with a destination

Inspect requests, understand the network, set up optional tools, or transfer files.

02 · Work

Return to the right tool

Collapse the sidebar for space; recent tools and destinations return to their last route.

03 · Review

Keep evidence and controls distinct

Inspect results, cancel active work and save supported local state explicitly.

The historical UI overhaul was published in the legacy Edge prerelease on 7 September 2026. Stable installers now select v0.7.0. Nightly is the separate rolling preview; current source can contain later changes.

Design contract

Current-source direct entry — 23 October 2026

Choose HTTP request, gRPC · TLS, or gRPC · plaintext on Home, enter an address, and select Open HTTP or Open gRPC. HTTP keeps the full URL path and query. gRPC keeps the deliberate transport choice and accepts a service authority rather than an HTTP path. Opening prepares an unsent draft; Send or Connect remains a separate action. Use Find a service instead when you need bounded protocol discovery instead. This direct entry is included in published v0.7.0.

Earlier refinement record — 18 October 2026

Home accepts a service address and offers direct HTTP/gRPC starts. Pasting a URL uses its host and port for discovery; credentials are rejected before probing. The tool sidebar collapses to the destination rail, with its preference stored in this browser. The narrow-screen drawer has its own state and continues to show the same tools.

Recent tools contains navigation links. It does not retain mounted editors or live calls: leaving a tool cancels its operation. Use each workbench's explicit saved-request and history features for supported recovery. Request run shortcuts belong to the focused request controls, and ignore repeats, input composition, and dialogs. HTTP results identify the request that ran; OpenAPI imports require an operation choice; gRPC failures retain navigation and offer retry. Recent services survive reloads with the server's sparse scan records. An explicit CLI scan is consumed once by the shell, including when switching between Home and gRPC.

That implementation record is separate from the September legacy Edge acceptance and stable v0.6.1. Current source groups optional companions in Extensions; the historical review below describes the earlier Publish layout.

Shared layout

  • A permanent destination rail and tool navigator own navigation on every route. A Network tool never replaces or removes Network navigation. Direct links and browser history work.
  • Destination links resume the last visited tool in that destination, using validated, browser-local route references. No live request or secret is persisted by navigation.
  • One shared page header, typography, control scale, focus treatment and surface hierarchy. Controls remain distinct from observations; tables and editors use the available width.
  • Primary navigation and evidence tabs stay vertical on desktop. Small screens use the same tool hierarchy in an accessible drawer. No operation is triggered by opening a tool.
  • Protocol-specific evidence and existing cancellation, consent, drafts and persistence remain part of the workflows. Navigation references are not promises of background execution.
  • Route loading and failures have visible, recoverable states in the stable shell.

Feature placement and review checklist

DestinationTools to review
HomeStart actions, recent targets, empty state
InspectOverview, gRPC, HTTP, WebSocket/SSE, Cap'n Proto, website security
NetworkThis Device, ports, next hop, path, local discovery, Nmap, packets, Tailscale, map, history
PublishCloudflare host, configuration, ingress, service actions, route planner
FilesAdd download, queue, history, destination, engine controls
SettingsAppearance, preferences, download policy, migration, AI agents, roadmap

Execution

  1. Replace route-owned navigation with a shared navigator and test context/history/resume.
  2. Migrate page headers and shared visual primitives across all feature families.
  3. Normalize workspace spacing, form/response layouts, empty/error/loading states and overflow.
  4. Run browser checks on every destination and representative tool workflows in both themes;

    inspect narrow layout, keyboard navigation and preserved evidence controls.

  5. Run frontend checks, production builds/budgets and Go checks; record acceptance and publish.

Browser acceptance — 7 September 2026

Reviewed the embedded Go-served production app in an actual browser at 1280×720, 1024×768 and 390×844. Light and dark modes, destination resume, the small-screen drawer, fuzzy command search and roadmap filtering were exercised. Opening tools did not start scans.

WorkflowObserved result
HTTPLocal 200 response, intentional 500 response, and cancellation of a delayed request; draft restored unsent after navigation
gRPCReflected a local 36-method fixture, invoked Ping successfully, and reconnected from saved target history
WebSocket and SSEReal echo message, explicit disconnect, and five SSE ticks followed by server completion
Cap’n ProtoUploaded a compiled schema, selected a method and received typed echo data including exact 64-bit values
Ports and routesOne open fixture port; native loopback next-hop lookup and one-hop ICMP trace; trace saved into map/history
Local discoveryExplicit own-device /32, four-port plan completed; no broad network scan
This DeviceReal Windows interface and socket-owner observations; bounded socket table
PacketsUploaded a 75-packet PCAP, filtered to 25 DNS packets and opened decoded packet details
DownloadsBundled aria2 1.37.0 started on request; 1 MiB transfer completed into a new destination folder; exact file size verified; saved completion retained after restarting ProtoPeek
WebsiteOne HEAD request to the owner's website returned 200, HTTP/2 and verified TLS 1.3 evidence
TailscaleInstalled client returned real peers through explicit read-only inspection
Cloudflare and NmapMissing executables/service reported accurately; unavailable actions remained disabled
Settings and agentsTheme persisted through reload; engine stop preserved state; MCP setup and activity surface reviewed

Nmap execution, privileged live capture, native OS dialogs and disruptive account/service changes were not exercised in this browser pass. Headscale, NetBird, tunnel config writes and other roadmap items remain future work. The local AI adapter has a separate acceptance record.

Implementation and size

The shared shell owns destination/tool navigation; feature routes own their evidence. PageHeader, EmptyState and route recovery components provide the common UI contract. Route loading, tool navigation, corrupt/unavailable session storage and roadmap filters have regression coverage. No frontend dependency, model runtime, database or background polling was added.

The built app measures 1,125,024 bytes of JavaScript (370,820 gzip) and 342,940 bytes of CSS (67,296 gzip) across all lazy routes. The shared CSS is 156,669 bytes (28,912 gzip). Explicit budgets were adjusted for the shared responsive layouts and website evidence styling; startup JavaScript ceilings remain unchanged. These are asset sizes, not runtime RAM measurements.

The final UI suite passes 776 tests in 88 files. Full Go tests, typechecking, formatting/lint, production app/site generation and bundle limits passed before publication. Lint retains non-blocking CSS specificity warnings from the shared and legacy route styles. Stable v0.6.1 remains separate from the current-source edge build.