SessionView class

Constructors

SessionView({String? account, String? actor, String? agent, int? children, String? createdAt, String? cwd, String? endedAt, int? events, String? host, String? id, LastEventView? lastEvent, String? org, String? parentSessionId, SessionProgress? progress, String? project, String? provider, bool? published, String? repo, String? room, String? rootSessionId, String? startedAt, String? status, String? target, String? taskRunId, String? taskWorkflowId, String? terminal, String? title, String? updatedAt})
Returns a new SessionView instance.

Properties

account ↔ String?
Account is which subscription or API account under that provider served it. Together with Provider it is what a login revoke matches on to stop the sessions a withdrawn account was paying for.
getter/setter pair
actor ↔ String?
Actor is WHO this session belongs to, as "org/sub" — the same identity a run is billed under. A register that names none takes the calling principal. It is what scopes a login revoke, so a session with the wrong actor is a session the right person cannot stop.
getter/setter pair
agent ↔ String?
Agent is the label the surface running this session calls itself by ("hanzo-dev"), up to 128 characters. Required at register. It is free text, not a reference: it need not name a defined agent, and nothing resolves it.
getter/setter pair
children ↔ int?
Children is the DIRECT fan-out — how many sessions name this one as parent — and not the size of the subtree. Read the tree for that.
getter/setter pair
createdAt ↔ String?
CreatedAt is when the row was written, same format. Every path that opens a session stamps it and StartedAt from one clock reading, so the two are equal on every session this surface has ever produced.
getter/setter pair
cwd ↔ String?
Cwd is the directory the session is working in NOW, not the one it started in: a linked shell moves around, and a card showing where hanzo link was run answers "which work is this" with something that was true once.
getter/setter pair
endedAt ↔ String?
EndedAt is when it reached done or error, same format. Empty while it is still running or paused, which is how absence reads here: not over yet.
getter/setter pair
events ↔ int?
Events is how many turns the session's log holds, counted at read time. It is the whole log, however few of them RecentEvents carries.
getter/setter pair
hashCode → int
The hash code for this object.
no setteroverride
host ↔ String?
Execution context (mission-control): the machine/repo/cwd a card shows and the run-target a session is dispatched to. Omitted when a surface didn't report it.
getter/setter pair
id ↔ String?
ID is the session's handle, minted here as "sess_" + 32 hex characters. Every later read, patch, event append and control command is addressed with it, and a caller cannot choose it.
getter/setter pair
lastEvent ↔ LastEventView?
LastEvent is the compact latest-activity line for the list projection (nil in register/patch/tree responses; set by list + detail). It lets a swipe card show a live one-line preview without fetching full detail.
getter/setter pair
org ↔ String?
Org is the caller's OWN tenant, echoed so a client can build the public build URL (/builds/:org/:project) without a second call or a guess. It is never another tenant's — every read is org-scoped before it gets here.
getter/setter pair
parentSessionId ↔ String?
ParentSessionID is the session that spawned this one, making this a subagent of it. Empty means this session is a root — a flow of its own. A parent always belongs to the same org, so a tree never crosses a tenant.
getter/setter pair
progress ↔ SessionProgress?
Progress is how far along this run is — a share of its goal, a phase, and a line saying what it is doing. Always present, so a board never branches on whether it is there; phase says "unknown" when nothing has estimated it. It is a MODEL ESTIMATE wherever estimated is true, and the row's own word where it is false. See progress.go.
getter/setter pair
project ↔ String?
The readable build: the product this session built and whether its story is public (provenance.go).
getter/setter pair
provider ↔ String?
Provider is the linked AI account's provider (claude | codex | hanzo | …) that served this run. Empty when the surface did not say.
getter/setter pair
published ↔ bool?
Published is the author's decision to let anyone read this session's story at the public build route. It only ever widens READ access to a session that already exists and grants nothing else; false, an unpublished session is invisible there no matter who asks. It cannot be true without a Project, because that route is keyed on (org, project).
getter/setter pair
repo ↔ String?
Repo is the code the session is working on, as the surface reported it. It is truth the SURFACE states, so it is a label rather than something resolved here.
getter/setter pair
room ↔ String?
Room is the collaborative room this run was started in (HIP-0523), empty when it came from anywhere else — a CLI, a schedule, an API call. It is what lets a workspace view show the runs of one room beside its messages.
getter/setter pair
rootSessionId ↔ String?
RootSessionID is the top of this session's tree, inherited from the parent and shared by every node in one flow. A root session's own id, when it has no parent. It is the key one indexed read pulls a whole flow by, and what ?root= narrows a list or a stream to.
getter/setter pair
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
startedAt ↔ String?
StartedAt is when the session opened, RFC 3339 in UTC to the second.
getter/setter pair
status ↔ String?
Status is one of exactly four: running, paused, done, error. running and paused are LIVE; done and error are TERMINAL and monotonic — once a session reaches one it can never go back, because reopening a finished run would fabricate liveness. A control command never moves it: the surface running the agent reports the new status, and until it does the command is only recorded.
getter/setter pair
target ↔ String?
Target is the registered run-target this session is dispatched to — a machine the org claimed, resolved same-org when it was set, so it can never point at another tenant's computer. Empty means the session names no machine.
getter/setter pair
taskRunId ↔ String?
TaskRunID is that workflow's particular run. A workflow is the definition and a run is one execution of it, which is why both are carried.
getter/setter pair
taskWorkflowId ↔ String?
TaskWorkflowID is the hanzoai/tasks durable workflow that actually EXECUTES this session — this registry is the view, control and stream layer over it. Set, a control command is FORWARDED to that engine; empty, the running surface polls for commands instead, which is every session today.
getter/setter pair
terminal ↔ String?
Terminal is where this session can be WATCHED — the URL the machine published for its live terminal. Omitted when it publishes none.
getter/setter pair
title ↔ String?
Title is the human line a card shows ("ship the landing page"), up to 512 characters. Free text, and the one field a surface may rewrite as the work turns out to be something else.
getter/setter pair
updatedAt ↔ String?
UpdatedAt is the session's last-activity clock, same format. It moves on a write to the row — a status, a title, a re-dispatch — AND on every appended turn, because the append bumps it in the same transaction. The list is ordered on CreatedAt, so this is the field that says whether a session is still saying anything.
getter/setter pair

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() → Map<String, dynamic>
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
override

Static Methods

fromJson(dynamic value) → SessionView?
Returns a new SessionView instance and imports its values from value if it's a Map, null otherwise.
listFromJson(dynamic json, {bool growable = false}) → List<SessionView>
mapFromJson(dynamic json) → Map<String, SessionView>
mapListFromJson(dynamic json, {bool growable = false}) → Map<String, List<SessionView>>

Constants

requiredKeys → const Set<String>
The list of required keys that must be present in a JSON.