@@ -39,10 +39,6 @@ import { piSessionStore } from "./pi-session-paths.js";
3939const PI_SESSIONS_LIST_COMMAND = "acpx.pi.sessions.list.v1" ;
4040const PI_SESSION_READ_COMMAND = "acpx.pi.sessions.read.v1" ;
4141const PI_TERMINAL_RESUME_COMMAND = "acpx.pi.terminal.resume.v1" ;
42- const UTF16_SEARCH_PREFIX = "x" . repeat ( 499 ) ;
43- const UTF16_BOUNDARY_SEARCH = `${ UTF16_SEARCH_PREFIX } 😀` ;
44- const LONE_SURROGATE_PATTERN =
45- / [ \uD800 - \uDBFF ] (? ! [ \uDC00 - \uDFFF ] ) | (?< ! [ \uD800 - \uDBFF ] ) [ \uDC00 - \uDFFF ] / u;
4642
4743const temporaryDirectories : string [ ] = [ ] ;
4844const originalSessionDir = process . env . PI_CODING_AGENT_SESSION_DIR ;
@@ -282,38 +278,9 @@ describe("Pi session catalog", () => {
282278 await expect (
283279 provider ! . read ( { hostId : "gateway" , threadId : "pi-session" , limit : 2 } ) ,
284280 ) . resolves . toMatchObject ( { threadId : "pi-session" , items : expect . any ( Array ) } ) ;
285- await expect ( provider ! . list ( { search : " " } ) ) . resolves . toEqual ( [
281+ await expect ( provider ! . list ( { } ) ) . resolves . toEqual ( [
286282 expect . objectContaining ( { hostId : "gateway" , sessions : [ expect . any ( Object ) ] } ) ,
287283 ] ) ;
288- await expect ( provider ! . list ( { search : "x" . repeat ( 501 ) } ) ) . resolves . toEqual ( [
289- expect . objectContaining ( { hostId : "gateway" , sessions : [ ] } ) ,
290- ] ) ;
291- } ) ;
292-
293- it ( "keeps local search needles UTF-16 safe at the length limit" , async ( ) => {
294- await createPiStore ( "hi" , UTF16_SEARCH_PREFIX ) ;
295- let provider : Parameters < OpenClawPluginApi [ "registerSessionCatalog" ] > [ 0 ] | undefined ;
296- registerPiSessionCatalog ( {
297- pluginConfig : { } ,
298- runtime : { nodes : { list : vi . fn ( ) . mockResolvedValue ( { nodes : [ ] } ) } } ,
299- registerSessionCatalog : ( value : NonNullable < typeof provider > ) => {
300- provider = value ;
301- } ,
302- registerNodeHostCommand : vi . fn ( ) ,
303- registerNodeInvokePolicy : vi . fn ( ) ,
304- } as unknown as OpenClawPluginApi ) ;
305-
306- await expect (
307- provider ! . list ( { hostIds : [ "gateway" ] , search : UTF16_BOUNDARY_SEARCH } ) ,
308- ) . resolves . toEqual ( [
309- expect . objectContaining ( {
310- hostId : "gateway" ,
311- sessions : [ expect . objectContaining ( { threadId : "pi-session" , name : UTF16_SEARCH_PREFIX } ) ] ,
312- } ) ,
313- ] ) ;
314- await expect (
315- provider ! . list ( { hostIds : [ "gateway" ] , search : `${ "y" . repeat ( 499 ) } 😀` } ) ,
316- ) . resolves . toEqual ( [ expect . objectContaining ( { hostId : "gateway" , sessions : [ ] } ) ] ) ;
317284 } ) ;
318285
319286 it ( "summarizes and pages a large session within transport limits" , async ( ) => {
@@ -775,24 +742,18 @@ describe("Pi session catalog", () => {
775742 registerNodeInvokePolicy : vi . fn ( ) ,
776743 } as unknown as OpenClawPluginApi ) ;
777744
778- await expect (
779- provider ! . list ( { hostIds : [ "node:node-1" ] , search : UTF16_BOUNDARY_SEARCH } ) ,
780- ) . resolves . toEqual ( [
745+ await expect ( provider ! . list ( { hostIds : [ "node:node-1" ] , search : "remote" } ) ) . resolves . toEqual ( [
781746 expect . objectContaining ( {
782747 sessions : [ expect . objectContaining ( { threadId : "pi-remote" , canOpenTerminal : true } ) ] ,
783748 } ) ,
784749 ] ) ;
785750 expect ( invoke ) . toHaveBeenNthCalledWith ( 1 , {
786751 nodeId : "node-1" ,
787752 command : PI_SESSIONS_LIST_COMMAND ,
788- params : { searchTerm : UTF16_SEARCH_PREFIX } ,
753+ params : { searchTerm : "remote" } ,
789754 timeoutMs : 20_000 ,
790755 scopes : [ "operator.write" ] ,
791756 } ) ;
792- const firstRequest = invoke . mock . calls [ 0 ] ?. [ 0 ] as
793- | { params ?: { searchTerm ?: string } }
794- | undefined ;
795- expect ( firstRequest ?. params ?. searchTerm ) . not . toMatch ( LONE_SURROGATE_PATTERN ) ;
796757 await expect (
797758 provider ! . openTerminal ! ( { hostId : "node:node-1" , threadId : "pi-remote" } ) ,
798759 ) . resolves . toEqual ( {
@@ -873,7 +834,7 @@ describe("Pi session catalog", () => {
873834 registerPiSessionCatalog ( api ) ;
874835 const catalog = provider ;
875836 expect ( catalog ) . toBeDefined ( ) ;
876- await catalog ! . list ( { hostIds : [ "node:node-1" ] , search : " " } ) ;
837+ await catalog ! . list ( { hostIds : [ "node:node-1" ] } ) ;
877838 await catalog ! . read ( { hostId : "node:node-1" , threadId : "pi-remote" } ) ;
878839
879840 expect ( invoke ) . toHaveBeenNthCalledWith ( 1 , {
0 commit comments