Skip to main content

Module surface

Module surface 

Source
Expand description

The surface a view uses: named read verbs by subject, returning values that carry no view type, and one dispatch verb for what a view acts with.

ViewSurface::dispatch is a verb rather than an accessor, so a second view is handed the commands it needs and not the whole core, and changes arrive on ViewSurface::subscribe_client.

Re-exports§

use std::path::Path; 🔒
use std::path::PathBuf; 🔒
use std::sync::Arc; 🔒
use forge_primitives::SessionSlot; 🔒
use forge_workspace::Command; 🔒
use forge_workspace::DispatchError; 🔒
use forge_workspace::Workspace; 🔒
pub use agents::AgentRow;
pub use agents::Agents;
pub use dictate::DictateView;
pub use extensions::ExtensionsView;
pub use extensions::LspServerCheck;
pub use roster::Roster;
pub use session::SessionState;
pub use session::machine_turn;
pub use workers::WorkerRef;
pub use workers::Workers;

Modules§

accounts
accounts(): the account pool as a view draws it.
agents
agents(): every project’s lead and workers as one row type.
biometric
biometric_enrolments(): the device enrolments the settings page lists and the unlock card reads.
board
board() and fleet(): the task board as a view reads it.
composer
slash_commands(), subagents(), subagent_cards(), forge_commands(), file_index(), respect_gitignore(): what the composer’s autocomplete triggers read, and the two sub-agent facts a record draws its section from.
connectors
connectors(): the Slack and Gotify subscription state.
dictate
dictate(): models and preflight state.
extensions
extensions(): the Extensions page’s read.
inspector
The session’s own facts: its header and the sections an inspector draws from it.
plugins
plugins(): the plugin inventory and update records.
reviews
reviews(): the review threads and submitted reviews for one branch.
roster
roster(): the projects and their sessions, plus the per-project lists the Projects pane draws.
session
session(): one session’s operational state.
usage
usage(): the token/cost report a /usage view drew.
vault
vault_state(): the shared vault session’s lock state and idle bound.
voice
voices(): the speaking role’s switch and model directory, and the release a dropped connection owes every seat it was listening to.
workers
workers(): the live workers, per project.

Structs§

CliVersionInfo
Snapshot of the installed-vs-latest claude CLI versions. Either side can be None independently; the renderer falls back to a dim - placeholder for the missing side.
ConversationHistory
A session transcript’s rows synthesized into wire shape, plus the compaction count recovered from the same pass over the file.
DocumentRead
One document, as the read answered: the path it resolved to, the bytes, the detected kind, and whether the DOCUMENT can carry a review - the hand-off’s commentable set, by extension.
SeatUpdate
The update the core emits, re-exported: it is the workspace-to-view protocol already, so a view subscribes to it rather than to a second vocabulary this crate would have to keep in step. One frame on the stream: the update, and the number the seat’s own counter minted for it.
ViewSurface
A view’s read handle on the core.

Enums§

DictateFailure
Why preflight stopped.
DictateModelState
How far one model has got.
DictateOutcome
What one finished dictation take produced. Plain data rather than forge_dictate::Outcome: a view words the notices, so it gets the observations and keeps the crate’s error shapes.
LoadingState
Boot-time loading state for an account. The boot wave and the cron spawn path wait for every account in the map to resolve to Ready or Bailed; the selection walk skips Loading and keeps Bailed as its last resort. A bailed account’s usage is None by construction (the loader clears it on the transition).
PendingAsk
What a seat is held on, as the core kept it: the prompt a view that attached late has no other way to read.
PendingKind
What a session is waiting on a person for. The core’s own kind rather than a second enum of the same two arms, so the row and the read cannot drift apart. What a session is waiting on a person for. The kind a needs-you row names, since “asked you a question” and “a permission prompt is waiting” are different asks with the same mark.
SessionUpdate
Update envelope: forge-workspace -> a view.

Functions§

cap_bytes 🔒
A [server] size key in KB as bytes: 0 means no bound (tool_record_cap_kb serves the records whole, first_frame_cap_kb the page the turn count asks for), and a value too large for this machine is clamped rather than truncated to zero.
is_success_result
The wire shape a turn that finished arrives as. A view marking a completion reads the Result through this rather than deciding for itself which results count.