fix decisions/tickets views to use proper IPC verbs
Both views were calling pql.exec (not registered). Switched to pql.decisions.list and pql.tickets.list which are registered IPC handlers. Response parsing updated to read structured data instead of parsing JSON from stdout. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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<DecisionsView> {
|
||||
|
||||
Future<void> _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<DecisionsView> {
|
||||
});
|
||||
return;
|
||||
}
|
||||
final raw = resp.data['stdout'] as String? ?? '[]';
|
||||
try {
|
||||
final list = (jsonDecode(raw) as List).cast<Map<String, dynamic>>();
|
||||
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<String, dynamic>())];
|
||||
_loading = false;
|
||||
});
|
||||
} else {
|
||||
setState(() => _loading = false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<TicketsView> {
|
||||
|
||||
Future<void> _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<TicketsView> {
|
||||
});
|
||||
return;
|
||||
}
|
||||
final raw = resp.data['stdout'] as String? ?? '[]';
|
||||
try {
|
||||
final list = (jsonDecode(raw) as List).cast<Map<String, dynamic>>();
|
||||
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<String, dynamic>())];
|
||||
_loading = false;
|
||||
});
|
||||
} else {
|
||||
setState(() => _loading = false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user