Documentation
¶
Overview ¶
Package desktop holds code that exists purely for the Hive desktop app. Subpackages implement the desktop's service backends and pipeline support; the desktop/ main package is thin Wails wiring over them. Anything reusable beyond the desktop (the GitHub client, session/core logic) does not belong here.
Index ¶
Constants ¶
const EnvActionsPath = "HIVE_DESKTOP_ACTIONS"
EnvActionsPath overrides the actions.yml file location, mirroring how EnvFlowsDir overrides the flows directory.
const EnvConfigPath = "HIVE_DESKTOP_CONFIG"
EnvConfigPath overrides the legacy profiles config path. New desktop configuration derives its default directory from this path so existing HIVE_DESKTOP_CONFIG setups keep flows/ and actions.yml in the same config root.
const EnvFlowsDir = "HIVE_DESKTOP_FLOWS"
EnvFlowsDir overrides the flows/*.yaml directory location, mirroring how EnvConfigPath anchors the default desktop config directory.
const EnvMockMode = "HIVE_DESKTOP_MOCK"
EnvMockMode selects deterministic offline backends instead of live GitHub: "feed" starts authenticated with fixture data (the e2e default), "pipeline" starts authenticated with the isolated source-to-commit smoke fixture, and "onboarding" starts signed out with a self-granting fake device flow.
Variables ¶
This section is empty.
Functions ¶
func ActionsPath ¶
func ActionsPath() string
ActionsPath is the actions.yml file location: launch-session/shell/ publish-event action definitions consumed by the desktop pipeline's output worker and detail-pane action picker (see internal/desktop/pipeline/actions). The design doc calls this ".hive/actions.yml" (repo-scoped), but the desktop app's config is global rather than repo-scoped — there is no single repo it belongs to — so it lives in the desktop config root instead. EnvActionsPath overrides the derived location outright, mirroring EnvFlowsDir/EnvConfigPath.
func ConfigPath ¶
func ConfigPath() string
ConfigPath is the legacy profiles config file path. The flow-backed desktop no longer reads this file directly, but FlowsDir and ActionsPath still derive their default config root from its directory for compatibility with existing HIVE_DESKTOP_CONFIG overrides. It follows the CLI's config convention: XDG_CONFIG_HOME, then ~/.config, with a desktop/ subdirectory.
func FlowsDir ¶
func FlowsDir() string
FlowsDir is where the desktop pipeline's flow definitions (flows/<id>.yaml, plus each flow's sibling flows/<id>.ui.yaml layout) live: a user-editable, dotfiles-managed "flows" directory under the desktop config root. It follows the same override convention as ConfigPath: EnvFlowsDir wins outright over the derived location.
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package auth implements GitHub authentication for the Hive desktop app: the Wails auth service, its live (device flow + PAT) and mock backends, and the wire types the onboarding UI consumes.
|
Package auth implements GitHub authentication for the Hive desktop app: the Wails auth service, its live (device flow + PAT) and mock backends, and the wire types the onboarding UI consumes. |
|
Package feed is the desktop's GitHub fetch layer: the wire Item type and a cached, coalesced LiveProvider the pipeline producer uses to turn a source into event_log rows.
|
Package feed is the desktop's GitHub fetch layer: the wire Item type and a cached, coalesced LiveProvider the pipeline producer uses to turn a source into event_log rows. |
|
Package pipeline is the desktop pipeline's producer side: the Source seam that turns a configured data source into event_log rows, and the Producer that drives it on a poll tick.
|
Package pipeline is the desktop pipeline's producer side: the Source seam that turns a configured data source into event_log rows, and the Producer that drives it on a poll tick. |
|
actions
Package actions implements the desktop pipeline's actions.yml schema: the output/action layer a flow's terminal `action` node targets (see internal/desktop/pipeline/flow's ActionConfig) and the source for the desktop detail pane's action buttons.
|
Package actions implements the desktop pipeline's actions.yml schema: the output/action layer a flow's terminal `action` node targets (see internal/desktop/pipeline/flow's ActionConfig) and the source for the desktop detail pane's action buttons. |
|
flow
Package flow implements the flows/*.yaml config schema for the desktop pipeline's Node-RED-style graph: a strict decoder, a per-node-type registry, cross-file reference validation, and directory loaders.
|
Package flow implements the flows/*.yaml config schema for the desktop pipeline's Node-RED-style graph: a strict decoder, a per-node-type registry, cross-file reference validation, and directory loaders. |
|
pipelinedb
Package pipelinedb is the dedicated desktop-pipeline SQLite store: the event log (event_log/consumer_offset), persisted pipeline outputs (feed_item/output_command), and per-node run metrics (node_run).
|
Package pipelinedb is the dedicated desktop-pipeline SQLite store: the event log (event_log/consumer_offset), persisted pipeline outputs (feed_item/output_command), and per-node run metrics (node_run). |