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()andfleet(): 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/usageview 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§
- CliVersion
Info - Snapshot of the installed-vs-latest claude CLI versions. Either
side can be
Noneindependently; the renderer falls back to a dim-placeholder for the missing side. - Conversation
History - A session transcript’s rows synthesized into wire shape, plus the compaction count recovered from the same pass over the file.
- Document
Read - 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.
- Seat
Update - 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.
- View
Surface - A view’s read handle on the core.
Enums§
- Dictate
Failure - Why preflight stopped.
- Dictate
Model State - How far one model has got.
- Dictate
Outcome - 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. - Loading
State - 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
ReadyorBailed; the selection walk skipsLoadingand keepsBailedas its last resort. A bailed account’susageisNoneby construction (the loader clears it on the transition). - Pending
Ask - What a seat is held on, as the core kept it: the prompt a view that attached late has no other way to read.
- Pending
Kind - 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.
- Session
Update - Update envelope: forge-workspace -> a view.
Functions§
- cap_
bytes 🔒 - A
[server]size key in KB as bytes:0means no bound (tool_record_cap_kbserves the records whole,first_frame_cap_kbthe 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
Resultthrough this rather than deciding for itself which results count.