@@ -126,6 +126,12 @@ type McporterState = {
126126 daemonStart : Promise < void > | null ;
127127} ;
128128
129+ function normalizePositiveInteger ( value : number | undefined , fallback : number ) : number {
130+ return typeof value === "number" && Number . isFinite ( value )
131+ ? Math . max ( 1 , Math . floor ( value ) )
132+ : fallback ;
133+ }
134+
129135type QmdEmbedQueueState = {
130136 tail : Promise < void > ;
131137} ;
@@ -1333,18 +1339,19 @@ export class QmdMemoryManager implements MemorySearchManager {
13331339 }
13341340 const contextLimits = this . contextLimits ;
13351341 if ( params . from !== undefined || params . lines !== undefined ) {
1336- const requestedCount = Math . max (
1337- 1 ,
1342+ const startLine = normalizePositiveInteger ( params . from , 1 ) ;
1343+ const requestedCount = normalizePositiveInteger (
13381344 params . lines ?? contextLimits ?. memoryGetDefaultLines ?? DEFAULT_MEMORY_READ_LINES ,
1345+ DEFAULT_MEMORY_READ_LINES ,
13391346 ) ;
1340- const partial = await this . readPartialText ( absPath , params . from , requestedCount ) ;
1347+ const partial = await this . readPartialText ( absPath , startLine , requestedCount ) ;
13411348 if ( partial . missing ) {
13421349 return { text : "" , path : relPath } ;
13431350 }
13441351 return buildMemoryReadResultFromSlice ( {
13451352 selectedLines : partial . selectedLines ,
13461353 relPath,
1347- startLine : Math . max ( 1 , params . from ?? 1 ) ,
1354+ startLine,
13481355 moreSourceLinesRemain : partial . moreSourceLinesRemain ,
13491356 maxChars : contextLimits ?. memoryGetMaxChars ,
13501357 suggestReadFallback : isDefaultMemoryPath ( relPath ) ,
@@ -2205,8 +2212,8 @@ export class QmdMemoryManager implements MemorySearchManager {
22052212 ) : Promise <
22062213 { missing : true } | { missing : false ; selectedLines : string [ ] ; moreSourceLinesRemain : boolean }
22072214 > {
2208- const start = Math . max ( 1 , from ?? 1 ) ;
2209- const count = Math . max ( 1 , lines ?? Number . POSITIVE_INFINITY ) ;
2215+ const start = normalizePositiveInteger ( from , 1 ) ;
2216+ const count = normalizePositiveInteger ( lines , Number . MAX_SAFE_INTEGER ) ;
22102217 let handle ;
22112218 try {
22122219 handle = await fs . open ( absPath ) ;
0 commit comments