@@ -73,6 +73,73 @@ describe("createFilter", () => {
7373 } ) ;
7474 } ) ;
7575
76+ describe ( "project filter — Windows paths" , ( ) => {
77+ test ( "matches when cwd uses backslashes" , ( ) => {
78+ const filter = createFilter ( {
79+ project : "/workspaces/projects/CodeForge" ,
80+ } ) ;
81+ expect (
82+ filter (
83+ makeMessage ( {
84+ cwd : "\\workspaces\\projects\\CodeForge" ,
85+ } ) ,
86+ ) ,
87+ ) . toBe ( true ) ;
88+ } ) ;
89+
90+ test ( "matches when project uses backslashes" , ( ) => {
91+ const filter = createFilter ( {
92+ project : "C:\\Users\\dev\\project" ,
93+ } ) ;
94+ expect (
95+ filter (
96+ makeMessage ( {
97+ cwd : "C:/Users/dev/project/subdir" ,
98+ } ) ,
99+ ) ,
100+ ) . toBe ( true ) ;
101+ } ) ;
102+
103+ test ( "matches when both use backslashes" , ( ) => {
104+ const filter = createFilter ( {
105+ project : "C:\\Users\\dev\\project" ,
106+ } ) ;
107+ expect (
108+ filter (
109+ makeMessage ( {
110+ cwd : "C:\\Users\\dev\\project" ,
111+ } ) ,
112+ ) ,
113+ ) . toBe ( true ) ;
114+ } ) ;
115+
116+ test ( "rejects non-matching Windows paths" , ( ) => {
117+ const filter = createFilter ( {
118+ project : "C:\\Users\\dev\\project" ,
119+ } ) ;
120+ expect (
121+ filter (
122+ makeMessage ( {
123+ cwd : "C:\\Users\\dev\\other" ,
124+ } ) ,
125+ ) ,
126+ ) . toBe ( false ) ;
127+ } ) ;
128+
129+ test ( "handles trailing backslash in project" , ( ) => {
130+ const filter = createFilter ( {
131+ project : "C:\\Users\\dev\\project\\" ,
132+ } ) ;
133+ expect (
134+ filter (
135+ makeMessage ( {
136+ cwd : "C:\\Users\\dev\\project" ,
137+ } ) ,
138+ ) ,
139+ ) . toBe ( true ) ;
140+ } ) ;
141+ } ) ;
142+
76143 describe ( "time filter (after)" , ( ) => {
77144 test ( "includes messages at or after the date" , ( ) => {
78145 const filter = createFilter ( { after : new Date ( "2026-03-01T10:00:00Z" ) } ) ;
0 commit comments