This release turns Pomavo from a configurable ticket store into a searchable collaboration workspace. You can query tickets with precision, discuss work in rich context, link related items, and plan delivery across Kanban, Scrum, Backlog, and Timeline project views.
Elasticsearch search with a purpose-built DSL
Search & Saved Queries is now backed by Elasticsearch and powered by a structured Query Language. You can search with natural text when you need speed, or write a DSL query when you need precision.
The DSL reads left to right as a filter, with optional sorting, grouping, projection, pagination, or mutation clauses. Built-in fields such as status, template, assignee, created_at, updated_at, and id work alongside custom fields by name.
template = "Bug" and status != "Done"
order by created_at desc
limit 25You can quote field names that contain spaces, compare numbers and dates, use relative date literals, and reference the current user with @me.
assignee = @me and "Due Date" between d'today' and d'now+1w'| Query capability | Example | Why it matters |
|---|---|---|
| Equality | priority = "High" | Find exact values |
| Ranges | created_at between d'-30d' and d'today' | Search recent or scheduled work |
| Text matching | title contains "login" | Find partial text in titles and fields |
| Set membership | status in ("To Do", "In Progress") | Filter several workflow states at once |
| Presence | assignee is empty | Find incomplete triage |
| References | assignee = @me | Make saved queries personal and reusable |
| Sorting | order by created_at desc | Control result order |
| Pagination | limit 50 offset 100 | Move through large result sets |
Saved queries make repeated searches one click
Saved queries let you store a DSL query as a named shortcut. They appear in the sidebar, open with the query pre-filled, and stay personal to you.
This is useful for everyday views such as My Open Bugs, Untriaged Incidents, High Priority This Week, or Review Waiting On Me. The query remains text, so it can be refined later without rebuilding a view from scratch.
Saved queries also support auto-refresh. You can keep results current without manually reloading, with refresh intervals from 5 seconds to 15 minutes.
(template = "Bug" or template = "Incident") and assignee = @me and status not in ("Done", "Closed")
order by priority descThe same DSL powers search, saved queries, reports, and bulk mutations. Learn the language once, then reuse it across Pomavo.
The query engine is built for search plus action
The Search Internals pipeline lexes the query string, parses it into an abstract syntax tree, translates filters into Elasticsearch queries, and computes projections and aggregations in the application.
That split is deliberate. Elasticsearch handles matching at scale, while Pomavo handles GROUP BY, RETURN, arithmetic, and functions consistently on top of the result set.
| Pipeline step | What happens | Result |
|---|---|---|
| Lex | Raw query becomes tokens | Operators, identifiers, literals, dates, mentions |
| Parse | Tokens become an AST | Comparisons, groups, clauses, projections |
| Translate | AST becomes Elasticsearch queries | Term, range, match, wildcard, and boolean clauses |
| Aggregate | Results are shaped in the app | Grouped rows, computed values, functions |
| Mutate | Changes run through domain services | Permissions, history, jobs, and indexing stay intact |
The DSL can also mutate data. You can set fields, create tickets, link or unlink tickets, and add comments to matched tickets. Mutations run through normal domain services and background jobs, so they respect permissions, tenant isolation, audit history, and indexing.
status = "Done" and resolution is empty
set resolution = "Fixed"Rich comments and complete activity history
Tickets now support rich text comments with formatting, @mentions, inline attachments, threaded replies, and reactions. A discussion can stay attached to the work item instead of spreading across chat, email, and meeting notes.
Comments are not isolated from ticket history. Ticket detail pages include a complete audit trail of creation, state changes, field changes, comments, links, and attachments. Each entry records who made the change and when.
| Collaboration feature | What you can do | Where it appears |
|---|---|---|
| Rich text comments | Format discussion, add lists, links, and code blocks | Ticket activity panel |
| @mentions | Notify teammates from comments and rich text fields | Inbox and activity |
| Ticket references | Type a sequence number to link another ticket | Description and comments |
| Threaded replies | Reply directly to a comment | Nested comment threads |
| Reactions | Add thumbs up, heart, smile, party popper, rocket, or eyes | Comment footer |
| Edit and delete | Maintain your own comments | Comment actions |
| History | Review field, state, link, attachment, and comment changes | Audit trail tab |
Infinite scroll keeps long activity streams usable. You can review older collaboration without loading the entire history at once.
Ticket links model dependencies and hierarchy
Template Links define the relationship types available between tickets. Links let you model dependencies, parent-child hierarchy, duplicates, and general context across work items.
| Link type | Outward meaning | Inward meaning | Common use |
|---|---|---|---|
| Parent / Child | Parent contains child | Child belongs to parent | Epic to story hierarchy |
| Blocks / Is Blocked By | This ticket blocks another | This ticket is blocked by another | Dependency planning |
| Duplicates / Is Duplicated By | This ticket duplicates another | Another ticket duplicates this one | Duplicate cleanup |
| Relates To | This ticket is related | Related association | Loose context and references |
Links appear in a dedicated ticket section. You can create links from the ticket detail view, choose relation type and direction, navigate to linked tickets, update relationships, or remove stale links.
Linked ticket creation is also supported, so you can create a new related ticket and attach it to the current one in one flow.
Projects organize work into boards and views
Projects are containers for related work. Each project has a name, key, description, members, settings, and a set of views that match the way the team plans and delivers.
When you create a project, you choose a use case. Scrum pre-configures sprint-based development with backlog, sprint boards, and burndown tracking. Kanban pre-configures continuous flow with WIP limits and swimlanes. Incident Management sets up incident tracking with escalation, auto-assign, and SLA tracking flags.
| Project view | Best for | Key behavior |
|---|---|---|
| Timeline | Roadmaps and dependency planning | Gantt-style date visualization |
| Backlog | Grooming and prioritization | Flat sortable list with bulk actions |
| Scrum | Sprint delivery | Iterations, active sprint board, burndown |
| Kanban | Continuous flow | Workflow columns, WIP limits, swimlanes |
Projects appear in the sidebar, and the active project is highlighted. Breadcrumbs keep context visible as you move between boards and detail pages.
Kanban, Scrum, Backlog, and Timeline views
Kanban gives you a continuous flow board where columns map to workflow states. You can configure WIP limits, hide columns, reorder columns, enable swimlanes, configure effort estimation, and search directly on the board.
Scrum gives you time-boxed iterations. You can create sprints with start and end dates, drag backlog items into a sprint, work on the active sprint board, complete sprints, and track burndown when estimates are configured.
Backlog gives you a flat, prioritized list for grooming. Drag and drop reordering, bulk actions, inline editing, and filters by template, status, assignee, and custom fields keep planning sessions focused.
Timeline gives you a Gantt-style view for work across weeks and months. You can plot work by date range, drag items to reschedule, show dependency lines, and group by template type, assignee, or status.
JSON exports support backup and migration
Organization settings now include JSON exports for tickets and templates. Ticket exports include field values, links, status, and template information. Template exports include fields, workflow states, transitions, and sequence configuration.
These exports are useful for backups, migration planning, compliance review, and offline analysis. They include progress feedback and download as client-side JSON files.
Export is especially valuable now that templates, workflows, comments, links, projects, and search all depend on shared data definitions. You can inspect the structure that shapes your organization instead of treating configuration as hidden product state.
Search, saved queries, rich activity, links, and project views give the next Pomavo releases a shared planning layer. From here, the product can deepen themes, rich text, boards, reports, and operations without changing the core workflow model.