fix: refine linux voice runtime behavior

This commit is contained in:
Edison Jwa
2026-05-25 18:26:49 +09:00
parent cd14aa7b98
commit d03ea937e6
9 changed files with 156 additions and 73 deletions
+2 -1
View File
@@ -198,7 +198,8 @@ Future<void> sendChatMessage({
/// On non-Android targets or before a voice session opens the
/// section is omitted. Per SDD-090 every field in that section is
/// a device-side technical scalar — no PII admitted.
String exportDiagnostics() => RustLib.instance.api.crateApiExportDiagnostics();
Future<String> exportDiagnostics() =>
RustLib.instance.api.crateApiExportDiagnostics();
/// Wire the identity persistence store to a platform-private
/// directory. Should be called once on app start after Flutter has
@@ -101,7 +101,7 @@ abstract class RustLibApi extends BaseApi {
Stream<BridgeEvent> crateApiEventsStream();
String crateApiExportDiagnostics();
Future<String> crateApiExportDiagnostics();
Future<BridgeAudioProcessingConfig> crateApiGetAudioProcessingConfig();
@@ -469,16 +469,21 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
const TaskConstMeta(debugName: "events_stream", argNames: ["sink"]);
@override
String crateApiExportDiagnostics() {
return handler.executeSync(
SyncTask(
callFfi: () {
Future<String> crateApiExportDiagnostics() {
return handler.executeNormal(
NormalTask(
callFfi: (port_) {
final serializer = SseSerializer(generalizedFrbRustBinding);
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 10)!;
pdeCallFfi(
generalizedFrbRustBinding,
serializer,
funcId: 10,
port: port_,
);
},
codec: SseCodec(
decodeSuccessData: sse_decode_String,
decodeErrorData: null,
decodeErrorData: sse_decode_bridge_error,
),
constMeta: kCrateApiExportDiagnosticsConstMeta,
argValues: [],