Overview
.github/workflows/audit.yml runs npm audit and depcheck but performs no license check. src/audit/analyzers/NetworkAnalyzer.ts contains a checkLicenses code path (with its own console.error at line 488), suggesting the concern was recognised but never wired into CI. A mobile app shipping to the App Store and Play Store with ~120 direct dependencies needs to know if a copyleft-licensed package enters the tree.
Specifications
Features:
- A license scan over the production dependency tree
- An allowlist of acceptable licenses, failing on anything outside it
- A generated attribution file for the app's legal notices screen
Tasks:
- Add a license-checking step to
audit.yml scoped to --production
- Define the allowlist and document the review process for exceptions
- Generate an attribution file and surface it in the app settings
- Reconcile with the
checkLicenses path in NetworkAnalyzer.ts — implement it properly or remove it
Impacted Files:
.github/workflows/audit.yml
src/audit/analyzers/NetworkAnalyzer.ts
src/components/settings/
Acceptance Criteria
- A disallowed license fails CI
- The allowlist and exception process are documented
- The app displays third-party attributions
Overview
.github/workflows/audit.ymlrunsnpm auditanddepcheckbut performs no license check.src/audit/analyzers/NetworkAnalyzer.tscontains acheckLicensescode path (with its ownconsole.errorat line 488), suggesting the concern was recognised but never wired into CI. A mobile app shipping to the App Store and Play Store with ~120 direct dependencies needs to know if a copyleft-licensed package enters the tree.Specifications
Features:
Tasks:
audit.ymlscoped to--productioncheckLicensespath inNetworkAnalyzer.ts— implement it properly or remove itImpacted Files:
.github/workflows/audit.ymlsrc/audit/analyzers/NetworkAnalyzer.tssrc/components/settings/Acceptance Criteria