diff --git a/lib/builtin/decisions/src/decisions_view.dart b/lib/builtin/decisions/src/decisions_view.dart index b32549fb..473c29f6 100644 --- a/lib/builtin/decisions/src/decisions_view.dart +++ b/lib/builtin/decisions/src/decisions_view.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:convert'; import 'package:clide/kernel/kernel.dart'; import 'package:clide/widgets/widgets.dart'; @@ -27,9 +26,8 @@ class _DecisionsViewState extends State { Future _load() async { final kernel = ClideKernel.of(context); - final resp = await kernel.ipc.request('pql.exec', args: { - 'argv': ['decisions', 'list', '--type', 'confirmed'], - }); + await kernel.ipc.request('pql.decisions.sync'); + final resp = await kernel.ipc.request('pql.decisions.list'); if (!mounted) return; if (!resp.ok) { setState(() { @@ -38,18 +36,14 @@ class _DecisionsViewState extends State { }); return; } - final raw = resp.data['stdout'] as String? ?? '[]'; - try { - final list = (jsonDecode(raw) as List).cast>(); + final raw = resp.data['decisions']; + if (raw is List) { setState(() { - _decisions = list.map(_DecisionEntry.fromJson).toList(); - _loading = false; - }); - } catch (e) { - setState(() { - _error = 'parse error: $e'; + _decisions = [for (final e in raw) _DecisionEntry.fromJson((e as Map).cast())]; _loading = false; }); + } else { + setState(() => _loading = false); } } diff --git a/lib/builtin/tickets/src/tickets_view.dart b/lib/builtin/tickets/src/tickets_view.dart index ad3fdfb1..094db870 100644 --- a/lib/builtin/tickets/src/tickets_view.dart +++ b/lib/builtin/tickets/src/tickets_view.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:convert'; import 'package:clide/kernel/kernel.dart'; import 'package:clide/widgets/widgets.dart'; @@ -27,9 +26,7 @@ class _TicketsViewState extends State { Future _load() async { final kernel = ClideKernel.of(context); - final resp = await kernel.ipc.request('pql.exec', args: { - 'argv': ['ticket', 'list'], - }); + final resp = await kernel.ipc.request('pql.tickets.list'); if (!mounted) return; if (!resp.ok) { setState(() { @@ -38,18 +35,14 @@ class _TicketsViewState extends State { }); return; } - final raw = resp.data['stdout'] as String? ?? '[]'; - try { - final list = (jsonDecode(raw) as List).cast>(); + final raw = resp.data['tickets']; + if (raw is List) { setState(() { - _tickets = list.map(_TicketEntry.fromJson).toList(); - _loading = false; - }); - } catch (e) { - setState(() { - _error = 'parse error: $e'; + _tickets = [for (final e in raw) _TicketEntry.fromJson((e as Map).cast())]; _loading = false; }); + } else { + setState(() => _loading = false); } }