Skip to content

Commit bcceef3

Browse files
authored
feat: aggregate ticket statuses in status bar display (#20)
* feat(status-bar): aggregate ticket statuses in display * docs: update changelog
1 parent 654254d commit bcceef3

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,13 @@ All notable changes to agent-stuff are documented here.
3636

3737

3838

39-
## refactor/rename-kt-to-ticket
39+
40+
41+
## feat/aggregate-ticket-statuses
42+
43+
The status bar now aggregates multiple ticket statuses into a single count display (e.g., "3 tickets") rather than listing each ticket individually (#20). This improvement reduces visual clutter in the extension's footer display while maintaining visibility of ticket status information. The change filters ticket statuses separately from other extension statuses and applies proper pluralization, making the status bar more readable when dealing with multiple concurrent tickets.
44+
45+
## [1.0.8](https://github.com/kostyay/agent-stuff/pull/19) - 2026-03-03
4046

4147
Renamed the `kt` extension to `ticket` for improved clarity and consistency (#19). All user-facing commands (`/ticket`, `/ticket-create`, `/ticket-run-all`), the `ticket` tool with its 9 actions, internal modules (`ticket-core.ts`), UI identifiers, and test files have been updated to reflect the new naming. This is a breaking change for users relying on `/kt` commands—they must now use the `/ticket` equivalents. The functionality and file storage structure (`.tickets/` directory) remain unchanged.
4248

pi-extensions/status-bar.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,20 @@ export default function statusBarExtension(pi: ExtensionAPI) {
257257
const statuses = footerData.getExtensionStatuses();
258258
const sandboxStatus = statuses.get("sandbox");
259259
const otherStatuses = [...statuses.entries()]
260-
.filter(([key]) => key !== "sandbox")
260+
.filter(([key]) => key !== "sandbox");
261+
262+
// Count ticket statuses separately; show as "N tickets"
263+
const ticketCount = otherStatuses.filter(([, val]) => val === "ticket").length;
264+
const nonTicketStatuses = otherStatuses
265+
.filter(([, val]) => val !== "ticket")
261266
.map(([, val]) => val);
267+
if (ticketCount > 0) {
268+
nonTicketStatuses.push(`${ticketCount} ticket${ticketCount > 1 ? "s" : ""}`);
269+
}
270+
262271
let l1Mid = "";
263-
if (otherStatuses.length > 0) {
264-
l1Mid = " " + otherStatuses.join(theme.fg("dim", " · "));
272+
if (nonTicketStatuses.length > 0) {
273+
l1Mid = " " + nonTicketStatuses.join(theme.fg("dim", " · "));
265274
}
266275

267276
const pad1 = " ".repeat(

0 commit comments

Comments
 (0)