# Views and filters (https://docs.vitrinka.ai/pm/views)



## The views [#views]

A project has five hubs — Overview, History, Work, Plan and Record — listed under the project in the sidebar. The head reads Work / \<project> / \<hub>: Work opens the [Work home](/use#homes), the project its Overview, and the gear beside it opens the project's [settings](/pm/projects). The toolbar's view switch picks a hub's display. The URL preserves the hub, the display and the task filter so you can return to them or share the link. On a phone, the hubs are a row of words above the page.

| Hub                    | Display   | What it shows                                                                                                                             |
| ---------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| [Overview](/pm/brief)  | —         | Needs you, the [sprint](/pm/sprints) timeline, the picked sprint's cockpit and its tasks; the project-wide panels until the first sprint. |
| [History](/pm/history) | —         | Product snapshot and stable chapters with original evidence.                                                                              |
| Work                   | List      | The open list in rank order — drag to rank — or the order you sort by, grouped as you choose.                                             |
| Work                   | Board     | Columns by state (or by any grouping), drag to move.                                                                                      |
| Work                   | Table     | Tasks in sortable columns.                                                                                                                |
| Work                   | Timeline  | Task dates, sprint bands and milestone markers on a timeline.                                                                             |
| Plan                   | Backlog   | Open work outside any sprint — drag to rank, move a task into the sprint from its row.                                                    |
| Plan                   | Calendar  | Each task on its due date, falling back to its end date, then start date.                                                                 |
| Record                 | QA        | QA plans with their coverage, then sessions, runs and bug reports ([test runs](/qa/runs)).                                                |
| Record                 | Activity  | The project's ledger, newest first.                                                                                                       |
| Record                 | Time      | The project's [work time](/use/day#time), recorded on its tasks.                                                                          |
| Record                 | Boards    | The project's boards.                                                                                                                     |
| Record                 | Artifacts | The documents and sets the project published.                                                                                             |

Every row in a task list has the same columns: state, type, ID, title with up to two labels, pull request or live run, priority, due date and assignee. An empty cell stays blank. In a narrow pane, the pull request goes first, then the due date, then the labels.

The Overview's sprint table, Plan › Backlog, Work › List and Work › Table wear a header row over those columns. Click a header to sort by it; shift-click adds it as a tie-breaker, up to four, numbered in order. The caret beside it — the "\<Column> column menu" — sorts ascending or descending, adds the column to the sort or removes it, and filters it: State, Type, Priority and Who as a list of values, Title as text, Due as a date range. A header filter is the same filter the toolbar edits, so the two never disagree, and dragging a row to rank works only while the sort is Rank. The sprint table keeps its own sort and filter, remembered per project in your browser; a filter carried over from Work never reaches it.

Pending drafts wait on the workspace [Intake screen](/pm/intake#screen); the old Plan › Intake address lands there. Your desk across projects sits on the [Work home](/use#homes) under the project table; `/me/work` redirects to the workspace home.

## One filter document [#filter]

List, Board, Table, Timeline, Backlog and Calendar share a task filter: states, state groups, types, categories, origins, admission, priorities, assignees, labels, sprint, milestone, parent, intake state, due and start windows, text, custom select fields, sort, grouping and swimlane. The toolbar and the column headers edit it. State, People, Priority and Type are always visible, and a set one reads its values in place, for example “State: Todo, In review”. **+ Filter** holds sprint, milestone, labels, no priority, top level only and a due range. **Sort** names the order in effect. The URL stores the filter as `?f=<base64url json>`, and the server rejects unknown fields. The Overview and the Record displays have their own scopes, and so does the Intake screen; Activity has its own event-kind filter.

Choose a sprint explicitly because active sprints may overlap. Category classifies the work, origin names its requester, and admission distinguishes committed work from pending, declined or merged proposals. Changing one does not rewrite the others.

The sort is up to four rules, each a key and a direction: the first sorts, each later one breaks the ties left, and a task without the value (no due date, no assignee, no priority, no estimate, no sprint) comes last either way. `asc` is the key's natural reading order — rank top-down, priority urgent first, dates earliest first, text A→Z, state along the workflow. The keys are rank, priority, due, start, created, updated, title, state, type, assignee, id, sprint and estimate. An older document's `order` still works; `sort` wins when both are set.

```json
{ "groups": ["started"], "due": { "to": "2026-09-30T23:59:59Z" }, "sort": [{ "key": "due", "dir": "asc" }, { "key": "priority", "dir": "asc" }] }
```

## Say it in a sentence [#nl]

Type a phrase into the toolbar's search field (the magnifier, or `/`), which reads "search, or say it". Without an AI backend, it recognizes a limited English vocabulary such as “mine, overdue.” It does not interpret Czech phrases or negation such as “not in review”; use the structured controls for those filters. When the project's AI backend is available, it can interpret the request instead.

## Saved views [#saved]

A saved view stores a named task filter shared by the project. Pick it from the toolbar's **Display** menu or the command palette to apply the filter to your current view. It does not save or change the view layout. Agents list them with `list {kind: "view"}`.

## Pages, cursors and live updates [#paging]

Lists load more tasks as you browse, using cursors tied to the selected order. Task changes arrive live; if an update arrives while you are dragging, it waits until the drag ends. [History](/pm/history#paging) instead pins a reading snapshot until you explicitly refresh it.

## The right panel [#panel]

Open a task to read it without leaving the view. The panel has three modes — **overlay**, **push** (narrows the view beside it) and **Focus** (a centred reading surface with a properties rail) — and a drawer you can resize; mode and width belong to your account. The task reads in tabs — Details, Delivery (its pull requests and commits), Time and Activity — with a search field that finds text across the task, its subtasks, attachments, boards, pull requests, steps and comments. Comments, replies and Eve runs share one conversation that rises from the composer bar at the panel's foot.

A task, board or attachment linked in the project pages — a mention, a subtask or relation, a crumb, an attachment, a board row — peeks on hover: rest the pointer on it and a small live card of it appears; hold ⌥ and the peek is a big one, swapping at once as you move to the next. One click opens the thing itself — a task in the panel, a board on its own page, anything opened inside a task as a card over it (below). On touch a tap opens it straight away. Hopping from task to task inside the panel keeps a trail: Esc steps back one task at a time — a subtask opened from its epic returns to the epic, the next Esc closes — while ✕ closes everything. In the Focus modal the tasks you came through wait behind the open one as a stack; click one to go back to it.

Inside a task every open is a card laid over it: an attachment and its versions, a board the task links, a ref in the description, a search hit or a board URL clicked anywhere in the panel. In the Focus modal the card sits on the stack with the task beneath it; in the drawer and push mode it takes the panel's place. Its top bar carries the crumb, `‹ N / M ›` to walk the task's attachments (← → or j/k), and open, download and versions as icons; Esc or `‹` takes the card off and keeps the trail. The address keeps the card (`?ref=` or `?board=`), so a reload, Back or a shared link brings it back. Pictures never go on the stack: a journey's evidence screenshots and the image uploads tile as a gallery, and a click zooms the picture in place.

## The command palette [#palette]

`.` or ⌘⇧P opens the project palette: tasks by title, the views, create, the panel mode, and saved views. ⌘K stays the shell-wide spotlight.
