replace ptyc with forkpty() via Dart FFI
test / unit + widget + golden + a11y (push) Failing after 3m13s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / unit + widget + golden + a11y (push) Failing after 3m13s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
NativePty calls forkpty() directly — no helper binary, no socketpair, no SCM_RIGHTS. The master fd stays in-process. Reader isolate uses poll() for clean shutdown. Based on the pty-spike proof-of-concept. Platform-aware: macOS uses libSystem (DynamicLibrary.process), Linux needs libutil.so.1. TIOCSWINSZ platform-detected. PaneRegistry updated to use NativePty. registerPaneCommands no longer needs a Toolchain parameter. All ptyc references removed from the daemon layer. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
cf2ae48201
commit
5aa0eb46e4
@@ -35,7 +35,6 @@ void main() {
|
||||
final pane = await registry.spawn(
|
||||
kind: PaneKind.terminal,
|
||||
argv: const ['/bin/echo', 'hi'],
|
||||
ptycPath: ptycPath,
|
||||
);
|
||||
|
||||
expect(pane.id, startsWith('p_'));
|
||||
@@ -50,7 +49,6 @@ void main() {
|
||||
await registry.spawn(
|
||||
kind: PaneKind.terminal,
|
||||
argv: const ['/bin/echo', 'hello-panes'],
|
||||
ptycPath: ptycPath,
|
||||
);
|
||||
|
||||
// /bin/echo closes its pty quickly. Wait briefly for output +
|
||||
@@ -73,7 +71,6 @@ void main() {
|
||||
final pane = await registry.spawn(
|
||||
kind: PaneKind.terminal,
|
||||
argv: const ['/bin/cat'],
|
||||
ptycPath: ptycPath,
|
||||
);
|
||||
|
||||
final writeCount = registry.write(pane.id, utf8.encode('abc'));
|
||||
@@ -90,7 +87,6 @@ void main() {
|
||||
final pane = await registry.spawn(
|
||||
kind: PaneKind.terminal,
|
||||
argv: const ['/bin/cat'],
|
||||
ptycPath: ptycPath,
|
||||
);
|
||||
|
||||
await registry.close(pane.id);
|
||||
@@ -109,7 +105,6 @@ void main() {
|
||||
final pane = await registry.spawn(
|
||||
kind: PaneKind.claude,
|
||||
argv: const ['/bin/sh', '-c', 'exit 0'],
|
||||
ptycPath: ptycPath,
|
||||
);
|
||||
expect(pane.kind, PaneKind.claude);
|
||||
expect(pane.toJson()['kind'], 'claude');
|
||||
|
||||
Reference in New Issue
Block a user