Tickets
Tickets is the last item of the Today group. It shows what the organization is working on and what that work produced: the tickets the platform holds, the plans written for them and the runs those plans started. The section only reads; to create, plan or launch a ticket use the coding agent flow and the tickets guide.
Every list is a page of the platform's ticket.search workflow, and the ticket behind a row is ticket.get. Both run in the window's organization, so switching organization drops everything of the old one: the rows, the pick, the filters and the view.
Board and List
The Board | List switch sits in the toolbar of both views. Switching only changes the view: the rows in hand, the picked ticket and the filters stay, and nothing is read again. A fresh window opens on Board.
Board
Five columns, in this order. A ticket sits in the column its status maps to.
| Column | Statuses that land here |
|---|---|
| New | open, and any status the board does not model. A ticket nobody has triaged is New |
| Triaged | triaged |
| In progress | in_progress |
| Blocked | blocked |
| Done | resolved, closed |
Done is hidden by default: Show done (N) in the toolbar reveals it. Ignored tickets are not work in New, so they sit in a collapsed Ignored (N) trail under the columns.
Each column heading shows its count. Picking a card opens the ticket page beside the board.
List
The list column holds the tickets, the ticket page fills the right. The column resizes by its edge. The picked row scrolls into view.
Each row shows a status dot, the title, a status tag, the kind, how long ago it was last touched (updated_at, or last_seen_at when the platform has no update time), N times when it recurred, and Waiting on you when the ticket carries the founder-wait label.
Similar tickets fold
Tickets that are the same item said twice show as one card with a N similar disclosure. Two tickets stack when they have the same status and the same title after the app lowercases it and removes a leading [tag] and any UUID. Stacks only form inside one column, the newest ticket is the card, and a stack that holds the picked ticket stays open. Wording that still differs stays separate.
Search and filters
| Control | Behavior |
|---|---|
| Search tickets | Typing narrows the rows already loaded at once (title, UUID and labels). Enter asks the platform for the pages of what you typed. Esc clears it and reloads |
| Filters (List only) | Status: All, Open, Triaged, In progress, Blocked, Resolved, Closed, Ignored. The Board shows a Show every status link instead when a status is chosen |
| Priority | All, Urgent, High, Normal, Later |
| Owner | Anyone, Mine (disabled without a signed-in user), Unassigned |
Choosing a filter drops the rows in hand and reads the new set from the platform. The platform's priority names map to words: page is Urgent, priority High, routine Normal, deferred Later. The aliases urgent, high, medium and low fold onto the same words. Severity reads as Critical, Major, High, Medium, Minor or Low.
Filters that are empty are not sent. The call carries only what you chose.
Paging
The platform returns a page at a time (50 rows by default). Load more tickets (under the list, or in the Board toolbar) follows the platform's cursor and appends. The subtitle reads N matching, or N of M matching when the platform reports a total larger than what is loaded. A read counts as fresh for 30 seconds: reopening the section inside that window does not call the platform again; the reload button does.
Older platforms
A platform that predates the newer filter fields rejects them. The app then drops those fields, falls back to limit and offset, and applies your filters to the rows already loaded instead. When that happens and you chose a status, priority or owner, the filter bar says Showing the tickets already loaded. Owner filters cannot be applied locally (a row carries no assignee), so on such a platform they narrow nothing until the platform supports them.
If a page is larger than the platform sends at once, the app asks again with half the page.
The ticket page
Picking a ticket shows what the row already had straight away and the full ticket as soon as it is read.
| Part | Content |
|---|---|
| Header line | Status, priority, severity and kind, Waiting on you when the founder-wait label is set, and when it was last seen |
| Dates | Opened and Last seen, in your local time |
| Labels (N) | Collapsed; the founder-wait label is shown as a tag instead |
| Impact and Required to unblock | Lifted out of the description when it has a paragraph that starts with those words (or a heading of the same name), so you read them first |
| Full report | The rest of the description, collapsed when Impact or Required to unblock was lifted out; shown in full otherwise |
| Coding spec | The ## Coding spec section of the body, collapsed |
| What led here | Links and events. See below |
| What it produced | Plans and runs. See below |
| Buttons | Copy Ticket ID, Open on the web |
What led here
The links ticket.get returns plus the ticket's events, newest first.
- Search link notes matches the note text on a link, not the UUID it points at.
- Link kind and Target type are built from what the links in hand carry. A ticket with no link of a kind does not offer it.
- A link to another ticket opens that ticket in the section, so you can walk the chain. A link to anything else is a reference, not a button. Its badge shows the target's status only when that ticket is in the loaded rows; otherwise it reads idle rather than a guess.
- Events show what happened, who did it (
systemwhen the platform does not say) and when.
Your choices on this column stay when you pick another ticket, so the same kind filter reads the next ticket of a chain.
What it produced
The plans written for the ticket and the runs those plans started, in the same state vocabulary as the rest of the app.
- Plan status and Run state narrow what is shown. They are views over the loaded ticket, not queries, and they also survive a change of ticket.
- A row can open a URL or show an age only when the platform's answer carries one; the app does not invent either.
- Right-click a row for its menu (copy id; open when a URL exists).
Empty and error states
| You see | Meaning |
|---|---|
| Loading tickets… | The first read is running |
| Couldn't load: … | The first read failed. Rows already in hand stay when a later reload fails; the toolbar shows Couldn't refresh with the reason on hover |
| No tickets match | Widen the filters or clear the search |
| Pick a ticket | Nothing selected. The pane lists what the page will show |
| Nothing led here | The ticket carries no links and no events yet |
| Couldn't open the ticket: … | ticket.get failed for the pick |
Overview, Decisions and Activity
The three Today views of Orkestia Cockpit — what "Needs you" counts, how to answer a decision, who a decision is addressed to, and how live updates and notifications work
Workflows builder
Build, check, save, run and schedule a workflow in Orkestia Cockpit — the steps and diagram views, blocks, the Test run, versions and drafts, past runs and the assistant panel
