@@ -29,8 +29,13 @@ function clampInt(value, min, max, fallback) {
2929 return Math . min ( max , Math . max ( min , parsed ) ) ;
3030}
3131
32- function getExpectedSessions ( envValue ) {
32+ function getExpectedSessions ( envValue , discovered = null ) {
3333 if ( envValue ) return envValue . split ( "," ) . map ( ( s ) => s . trim ( ) ) . filter ( Boolean ) ;
34+ if ( discovered && discovered . success === true ) {
35+ if ( discovered . packagesCount > 0 ) {
36+ return discovered . autostartAliases ;
37+ }
38+ }
3439 return [ "sentry-agent" ] ;
3540}
3641
@@ -248,6 +253,33 @@ describe("heartbeat v2: getExpectedSessions", () => {
248253 const result = getExpectedSessions ( "sentry-agent,,monitor," ) ;
249254 assert . deepEqual ( result , [ "sentry-agent" , "monitor" ] ) ;
250255 } ) ;
256+
257+ it ( "returns discovered autostart aliases when discovery succeeds" , ( ) => {
258+ const result = getExpectedSessions ( undefined , {
259+ success : true ,
260+ packagesCount : 2 ,
261+ autostartAliases : [ "sentry-agent" ] ,
262+ } ) ;
263+ assert . deepEqual ( result , [ "sentry-agent" ] ) ;
264+ } ) ;
265+
266+ it ( "returns empty when discovery succeeds and all subagents are non-autostart" , ( ) => {
267+ const result = getExpectedSessions ( undefined , {
268+ success : true ,
269+ packagesCount : 2 ,
270+ autostartAliases : [ ] ,
271+ } ) ;
272+ assert . deepEqual ( result , [ ] ) ;
273+ } ) ;
274+
275+ it ( "falls back to default when discovery succeeds but no packages exist" , ( ) => {
276+ const result = getExpectedSessions ( undefined , {
277+ success : true ,
278+ packagesCount : 0 ,
279+ autostartAliases : [ ] ,
280+ } ) ;
281+ assert . deepEqual ( result , [ "sentry-agent" ] ) ;
282+ } ) ;
251283} ) ;
252284
253285describe ( "heartbeat v2: computeBackoffMs" , ( ) => {
0 commit comments