store

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package store is Fort's SQLite state store (backlog AO-016, spec §6.6): run, node_run, route_decision, and an append-only event log. The event log is the source the fort-ui live feed replays from.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event struct {
	ID        int64
	RunID     string
	Type      string
	Data      string
	Code      int
	CreatedAt time.Time
}

Event is one append-only event row.

type NodeRun

type NodeRun struct {
	ID        string // runID:nodeID
	RunID     string
	NodeID    string
	Type      string
	Status    string
	Input     string
	Output    string
	Attempts  int
	CreatedAt time.Time
	UpdatedAt time.Time
}

NodeRun is a persisted DAG node execution (Phase 2).

type RouteDecision

type RouteDecision struct {
	ID          string
	TaskID      string
	Route       string
	MatchedRule string
	IsDefault   bool
	Reason      string
	CreatedAt   time.Time
}

RouteDecision is a persisted routing outcome.

type Run

type Run struct {
	ID          string
	Title       string
	Agent       string
	Status      string
	MatchedRule string
	Machine     string // resolved target host (spec 022); "" = local/single-machine
	FlowID      string
	ExitCode    int
	Error       string
	CreatedAt   time.Time
	UpdatedAt   time.Time
}

Run is a persisted execution (a routed task or a flow run).

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store wraps the SQLite database.

func Open

func Open(path string) (*Store, error)

Open opens (creating if needed) the database at path and applies migrations.

func (*Store) AppendEvent

func (s *Store) AppendEvent(e Event) (int64, error)

AppendEvent appends an event (append-only) and returns its id.

func (*Store) Close

func (s *Store) Close() error

Close closes the database.

func (*Store) CreateRun

func (s *Store) CreateRun(r Run) error

CreateRun inserts a new run.

func (*Store) Events

func (s *Store) Events(runID string) ([]Event, error)

Events returns all events for a run, in insertion order.

func (*Store) EventsSince

func (s *Store) EventsSince(cursor int64) ([]Event, error)

EventsSince returns events with id greater than the cursor (the UI feed tail).

func (*Store) GetRun

func (s *Store) GetRun(id string) (Run, error)

GetRun returns a run by id.

func (*Store) ListRuns

func (s *Store) ListRuns() ([]Run, error)

ListRuns returns all runs, newest first.

func (*Store) NodeRuns

func (s *Store) NodeRuns(runID string) ([]NodeRun, error)

NodeRuns returns the node runs for a run, in creation order.

func (*Store) RouteDecisions

func (s *Store) RouteDecisions(taskID string) ([]RouteDecision, error)

RouteDecisions returns the decisions recorded for a task, oldest first.

func (*Store) SaveRouteDecision

func (s *Store) SaveRouteDecision(d RouteDecision) error

SaveRouteDecision persists a routing decision.

func (*Store) UpdateRunStatus

func (s *Store) UpdateRunStatus(id, status string, exitCode int, errMsg string) error

UpdateRunStatus updates a run's terminal fields.

func (*Store) UpsertNodeRun

func (s *Store) UpsertNodeRun(n NodeRun) error

UpsertNodeRun inserts or updates a node run (keyed by id = runID:nodeID).

func (*Store) WaitingGates

func (s *Store) WaitingGates() ([]NodeRun, error)

WaitingGates returns every gate node currently awaiting a human decision, across all runs (the gate-inbox source).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL