tickets panel: parent/child as a tree, bold subject ticket (T-281)

Replace the ambiguous inline "T-1 ← T-9" id row on ticket cards with a
small tree: the parent renders as a muted, clickable breadcrumb above, and
the card's own ticket sits below it under a "└" connector in bold — so it's
clear which id is the subject and which is its parent. Tapping the parent
selects it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-08 13:49:36 +02:00
co-authored by Claude Opus 4.8
parent 67081709ec
commit a62003a833
5 changed files with 65 additions and 5 deletions
@@ -95,6 +95,18 @@ void main() {
expect(selections.single.data['id'], 'T-1');
});
testWidgets('tapping the parent breadcrumb selects the parent (T-281)', (tester) async {
f.ipc.stub('pql.tickets.list', (_) async => _list([_t('T-1', 'Child', 'backlog', parentId: 'T-9')]));
final selections = <Message>[];
final sub = f.services.messages.subscribe(publisher: 'builtin.tickets', channel: 'selection').listen(selections.add);
addTearDown(sub.cancel);
await pumpView(tester);
await tester.tap(find.text('T-9')); // the muted parent breadcrumb
await pumpAsync(tester);
expect(selections.single.data['id'], 'T-9');
});
testWidgets('empty list shows the placeholder', (tester) async {
f.ipc.stub('pql.tickets.list', (_) async => _list(const []));
await pumpView(tester);