add pql subsystem — daemon-side client + IPC handlers

PqlClient wraps pql CLI per D-003 (shell-out, never duplicate).
IPC verbs: pql.files, pql.meta, pql.backlinks, pql.outlinks,
pql.tags, pql.schema, pql.query, pql.doctor, pql.decisions.*,
pql.tickets.*, pql.plan.status. 15 new core tests.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-04-22 14:02:47 +02:00
co-authored by Claude
parent e43438d369
commit 93ab6ea3bd
5 changed files with 534 additions and 0 deletions
+5
View File
@@ -20,8 +20,10 @@ import 'package:clide/src/daemon/editor_commands.dart';
import 'package:clide/src/daemon/files_commands.dart';
import 'package:clide/src/daemon/git_commands.dart';
import 'package:clide/src/daemon/pane_commands.dart';
import 'package:clide/src/daemon/pql_commands.dart';
import 'package:clide/src/editor/registry.dart' show EditorRegistry;
import 'package:clide/src/panes/registry.dart';
import 'package:clide/src/pql/client.dart';
Future<void> main(List<String> argv) async {
if (argv.isEmpty) {
@@ -152,6 +154,9 @@ Future<void> _runDaemon(List<String> args) async {
registerGitCommands(dispatcher, files.root, events);
final pql = PqlClient(workDir: files.root);
registerPqlCommands(dispatcher, pql);
final stopping = Completer<void>();
void shutdown(ProcessSignal sig) {
if (!stopping.isCompleted) {