Back to releases

Search, Comments and Projects

Pomavo adds Elasticsearch search, a purpose-built DSL, saved queries, richer ticket collaboration, project boards, iterations, and JSON export workflows.

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.

Search, collaboration, and project planning in one release.

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.

dsl
template = "Bug" and status != "Done"
order by created_at desc
limit 25

You can quote field names that contain spaces, compare numbers and dates, use relative date literals, and reference the current user with @me.

dsl
assignee = @me and "Due Date" between d'today' and d'now+1w'
Query capabilityExampleWhy it matters
Equalitypriority = "High"Find exact values
Rangescreated_at between d'-30d' and d'today'Search recent or scheduled work
Text matchingtitle contains "login"Find partial text in titles and fields
Set membershipstatus in ("To Do", "In Progress")Filter several workflow states at once
Presenceassignee is emptyFind incomplete triage
Referencesassignee = @meMake saved queries personal and reusable
Sortingorder by created_at descControl result order
Paginationlimit 50 offset 100Move 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.

dsl
(template = "Bug" or template = "Incident") and assignee = @me and status not in ("Done", "Closed")
order by priority desc

The 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 stepWhat happensResult
LexRaw query becomes tokensOperators, identifiers, literals, dates, mentions
ParseTokens become an ASTComparisons, groups, clauses, projections
TranslateAST becomes Elasticsearch queriesTerm, range, match, wildcard, and boolean clauses
AggregateResults are shaped in the appGrouped rows, computed values, functions
MutateChanges run through domain servicesPermissions, 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.

dsl
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 featureWhat you can doWhere it appears
Rich text commentsFormat discussion, add lists, links, and code blocksTicket activity panel
@mentionsNotify teammates from comments and rich text fieldsInbox and activity
Ticket referencesType a sequence number to link another ticketDescription and comments
Threaded repliesReply directly to a commentNested comment threads
ReactionsAdd thumbs up, heart, smile, party popper, rocket, or eyesComment footer
Edit and deleteMaintain your own commentsComment actions
HistoryReview field, state, link, attachment, and comment changesAudit trail tab

Infinite scroll keeps long activity streams usable. You can review older collaboration without loading the entire history at once.

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 typeOutward meaningInward meaningCommon use
Parent / ChildParent contains childChild belongs to parentEpic to story hierarchy
Blocks / Is Blocked ByThis ticket blocks anotherThis ticket is blocked by anotherDependency planning
Duplicates / Is Duplicated ByThis ticket duplicates anotherAnother ticket duplicates this oneDuplicate cleanup
Relates ToThis ticket is relatedRelated associationLoose 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 viewBest forKey behavior
TimelineRoadmaps and dependency planningGantt-style date visualization
BacklogGrooming and prioritizationFlat sortable list with bulk actions
ScrumSprint deliveryIterations, active sprint board, burndown
KanbanContinuous flowWorkflow 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.