Skip to content

Commit 40738e1

Browse files
mtorpclaude
andauthored
Add hidden reach-continue-on-* flags for Coana v15 (#1251)
Coana v15 introduces four new halt-by-default behaviors in socket mode and corresponding --reach-continue-on-* opt-outs. Expose them as hidden flags on `socket scan create` and `socket scan reach` so the Socket CLI is ready to forward them when Coana v15 becomes the default. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent f43a6a9 commit 40738e1

6 files changed

Lines changed: 80 additions & 0 deletions

File tree

src/commands/ci/handle-ci.mts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ export async function handleCi(autoManifest: boolean): Promise<void> {
5454
reachAnalysisMemoryLimit: 0,
5555
reachAnalysisTimeout: 0,
5656
reachConcurrency: 1,
57+
reachContinueOnAnalysisErrors: false,
58+
reachContinueOnInstallErrors: false,
59+
reachContinueOnMissingLockFiles: false,
60+
reachContinueOnNoSourceFiles: false,
5761
reachDebug: false,
5862
reachDetailedAnalysisLogFile: false,
5963
reachDisableAnalytics: false,

src/commands/scan/cmd-scan-create.mts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,10 @@ async function run(
245245
reachAnalysisMemoryLimit,
246246
reachAnalysisTimeout,
247247
reachConcurrency,
248+
reachContinueOnAnalysisErrors,
249+
reachContinueOnInstallErrors,
250+
reachContinueOnMissingLockFiles,
251+
reachContinueOnNoSourceFiles,
248252
reachDebug,
249253
reachDetailedAnalysisLogFile,
250254
reachDisableAnalysisSplitting: _reachDisableAnalysisSplitting,
@@ -279,6 +283,10 @@ async function run(
279283
reachAnalysisMemoryLimit: number
280284
reachAnalysisTimeout: number
281285
reachConcurrency: number
286+
reachContinueOnAnalysisErrors: boolean
287+
reachContinueOnInstallErrors: boolean
288+
reachContinueOnMissingLockFiles: boolean
289+
reachContinueOnNoSourceFiles: boolean
282290
reachDebug: boolean
283291
reachDetailedAnalysisLogFile: boolean
284292
reachDisableAnalysisSplitting: boolean
@@ -487,6 +495,10 @@ async function run(
487495
isUsingNonDefaultMemoryLimit ||
488496
isUsingNonDefaultTimeout ||
489497
isUsingNonDefaultVersion ||
498+
reachContinueOnAnalysisErrors ||
499+
reachContinueOnInstallErrors ||
500+
reachContinueOnMissingLockFiles ||
501+
reachContinueOnNoSourceFiles ||
490502
reachEnableAnalysisSplitting ||
491503
reachLazyMode ||
492504
reachSkipCache ||
@@ -599,6 +611,10 @@ async function run(
599611
reachAnalysisMemoryLimit: Number(reachAnalysisMemoryLimit),
600612
reachAnalysisTimeout: Number(reachAnalysisTimeout),
601613
reachConcurrency: Number(reachConcurrency),
614+
reachContinueOnAnalysisErrors: Boolean(reachContinueOnAnalysisErrors),
615+
reachContinueOnInstallErrors: Boolean(reachContinueOnInstallErrors),
616+
reachContinueOnMissingLockFiles: Boolean(reachContinueOnMissingLockFiles),
617+
reachContinueOnNoSourceFiles: Boolean(reachContinueOnNoSourceFiles),
602618
reachDebug: Boolean(reachDebug),
603619
reachDetailedAnalysisLogFile: Boolean(reachDetailedAnalysisLogFile),
604620
reachDisableAnalytics: Boolean(reachDisableAnalytics),

src/commands/scan/cmd-scan-reach.mts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ async function run(
124124
reachAnalysisMemoryLimit,
125125
reachAnalysisTimeout,
126126
reachConcurrency,
127+
reachContinueOnAnalysisErrors,
128+
reachContinueOnInstallErrors,
129+
reachContinueOnMissingLockFiles,
130+
reachContinueOnNoSourceFiles,
127131
reachDebug,
128132
reachDetailedAnalysisLogFile,
129133
reachDisableAnalysisSplitting: _reachDisableAnalysisSplitting,
@@ -144,6 +148,10 @@ async function run(
144148
reachAnalysisMemoryLimit: number
145149
reachAnalysisTimeout: number
146150
reachConcurrency: number
151+
reachContinueOnAnalysisErrors: boolean
152+
reachContinueOnInstallErrors: boolean
153+
reachContinueOnMissingLockFiles: boolean
154+
reachContinueOnNoSourceFiles: boolean
147155
reachDebug: boolean
148156
reachDetailedAnalysisLogFile: boolean
149157
reachDisableAnalysisSplitting: boolean
@@ -267,6 +275,10 @@ async function run(
267275
reachAnalysisMemoryLimit: Number(reachAnalysisMemoryLimit),
268276
reachAnalysisTimeout: Number(reachAnalysisTimeout),
269277
reachConcurrency: Number(reachConcurrency),
278+
reachContinueOnAnalysisErrors: Boolean(reachContinueOnAnalysisErrors),
279+
reachContinueOnInstallErrors: Boolean(reachContinueOnInstallErrors),
280+
reachContinueOnMissingLockFiles: Boolean(reachContinueOnMissingLockFiles),
281+
reachContinueOnNoSourceFiles: Boolean(reachContinueOnNoSourceFiles),
270282
reachDebug: Boolean(reachDebug),
271283
reachDetailedAnalysisLogFile: Boolean(reachDetailedAnalysisLogFile),
272284
reachDisableAnalytics: Boolean(reachDisableAnalytics),

src/commands/scan/create-scan-from-github.mts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,10 @@ async function scanOneRepo(
253253
reachAnalysisMemoryLimit: 0,
254254
reachAnalysisTimeout: 0,
255255
reachConcurrency: 1,
256+
reachContinueOnAnalysisErrors: false,
257+
reachContinueOnInstallErrors: false,
258+
reachContinueOnMissingLockFiles: false,
259+
reachContinueOnNoSourceFiles: false,
256260
reachDebug: false,
257261
reachDetailedAnalysisLogFile: false,
258262
reachDisableAnalytics: false,

src/commands/scan/perform-reachability-analysis.mts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ export type ReachabilityOptions = {
1919
reachAnalysisMemoryLimit: number
2020
reachAnalysisTimeout: number
2121
reachConcurrency: number
22+
reachContinueOnAnalysisErrors: boolean
23+
reachContinueOnInstallErrors: boolean
24+
reachContinueOnMissingLockFiles: boolean
25+
reachContinueOnNoSourceFiles: boolean
2226
reachDebug: boolean
2327
reachDetailedAnalysisLogFile: boolean
2428
reachDisableExternalToolChecks: boolean
@@ -184,6 +188,18 @@ export async function performReachabilityAnalysis(
184188
...(reachabilityOptions.reachConcurrency
185189
? ['--concurrency', `${reachabilityOptions.reachConcurrency}`]
186190
: []),
191+
...(reachabilityOptions.reachContinueOnAnalysisErrors
192+
? ['--reach-continue-on-analysis-errors']
193+
: []),
194+
...(reachabilityOptions.reachContinueOnInstallErrors
195+
? ['--reach-continue-on-install-errors']
196+
: []),
197+
...(reachabilityOptions.reachContinueOnMissingLockFiles
198+
? ['--reach-continue-on-missing-lock-files']
199+
: []),
200+
...(reachabilityOptions.reachContinueOnNoSourceFiles
201+
? ['--reach-continue-on-no-source-files']
202+
: []),
187203
...(reachabilityOptions.reachDebug ? ['--debug'] : []),
188204
...(reachabilityOptions.reachDetailedAnalysisLogFile
189205
? ['--print-analysis-log-file']

src/commands/scan/reachability-flags.mts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,34 @@ export const reachabilityFlags: MeowFlags = {
2525
description:
2626
'Set the maximum number of concurrent reachability analysis runs. It is recommended to choose a concurrency level that ensures each analysis run has at least the --reach-analysis-memory-limit amount of memory available. NPM reachability analysis does not support concurrent execution, so the concurrency level is ignored for NPM.',
2727
},
28+
reachContinueOnAnalysisErrors: {
29+
type: 'boolean',
30+
default: false,
31+
hidden: true,
32+
description:
33+
'Continue reachability analysis when errors occur (timeouts, OOM, parse errors, etc.), falling back to precomputed (Tier 2) results. By default, the CLI halts on analysis errors.',
34+
},
35+
reachContinueOnInstallErrors: {
36+
type: 'boolean',
37+
default: false,
38+
hidden: true,
39+
description:
40+
'Continue reachability analysis when package installation fails, falling back to precomputed (Tier 2) results. By default, the CLI halts on installation errors.',
41+
},
42+
reachContinueOnMissingLockFiles: {
43+
type: 'boolean',
44+
default: false,
45+
hidden: true,
46+
description:
47+
'Continue reachability analysis when a Gradle or SBT project is missing its lock file (or version catalog / pre-generated SBOM). By default, the CLI halts.',
48+
},
49+
reachContinueOnNoSourceFiles: {
50+
type: 'boolean',
51+
default: false,
52+
hidden: true,
53+
description:
54+
'Continue reachability analysis when a workspace contains no source files for its ecosystem. By default, the CLI halts.',
55+
},
2856
reachDisableExternalToolChecks: {
2957
type: 'boolean',
3058
default: false,

0 commit comments

Comments
 (0)