Skip to content

chore(deps): bump 3 low-risk major deps (lucide-react / electron-builder / pptxgenjs)#105

Merged
hqhq1025 merged 2 commits intomainfrom
wt/sec-deps-low-risk-bump
Apr 19, 2026
Merged

chore(deps): bump 3 low-risk major deps (lucide-react / electron-builder / pptxgenjs)#105
hqhq1025 merged 2 commits intomainfrom
wt/sec-deps-low-risk-bump

Conversation

@hqhq1025
Copy link
Copy Markdown
Collaborator

Summary

Three pre-coordinated low-risk major bumps in one PR. None are security-driven (no matching dependabot alerts) — these are maintenance jumps to get off pre-1.0 / EOL majors before the next release.

Package From To Scope
lucide-react ^0.460.0 ^1.8.0 runtime, apps/desktop
electron-builder ^25.1.8 ^26.8.1 dev, apps/desktop (build/release only)
pptxgenjs ^3.12.0 ^4.0.1 runtime, packages/exporters (lazy-loaded)

Breaking-change audit (per-dep)

lucide-react 1.0

  • v1 removes brand icons (Github, Slack, Figma, Codepen, Codesandbox, Dribbble, Facebook, Framer, Gitlab, Instagram, LinkedIn, Pocket, Chromium, RailSymbol) and renames a few.
  • Audited every from 'lucide-react' import (19 files in apps/desktop); none of the removed/renamed icons are used. No code changes required.

electron-builder 26

  • v26 changes are largely around flatpak executableArgs, the dmgbuild python bundle, the pnpm node_modules collector, and a CI/CD multi-branch deploy flow.
  • Our apps/desktop/electron-builder.yml only sets basic targets (dmg / nsis / AppImage) and notarize/hardenedRuntime flags. No config tweaks required.

pptxgenjs 4.0

  • v4 breakers cluster around chart props (catLabels/catValues), defineSlideMaster() reuse, SchemeColorThemeColor, and a new exports field.
  • Our packages/exporters/src/pptx.ts only uses addSlide, slide.background, slide.addText, pres.layout, pres.title, and writeFile. None of those changed. The new exports field actually fixes the Vite/Web Worker import paths. No code changes required.

Verification

  • pnpm typecheck: green
  • pnpm test: 366 tests across all packages green (incl. pptx.test.ts which exercises real PPTX writing)
  • pnpm lint: 0 errors (11 unrelated pre-existing warnings)
  • Boot smoke: pnpm --filter @open-codesign/desktop dev boots cleanly, no new deprecations vs. baseline (electron 33.4.11, node 20.18.3 — clean [boot] open-codesign starting log)
  • 3 files changed (apps/desktop/package.json, packages/exporters/package.json, pnpm-lock.yaml) — well under the 50-file scope-creep limit.

Dependabot alerts resolved

None — checked repos/OpenCoworkAI/open-codesign/dependabot/alerts and none of the 3 packages appear. Pure maintenance bump.

PRINCIPLES checks

  • Compatibility — typecheck/tests/lint/boot all green
  • Upgradeability — moves us off three pre-1.0 / EOL majors before the next release window
  • No bloat — pure replacements, no transitive size regression of note
  • Elegance — zero source code churn; only package.json + lockfile

Drops

None — all 3 bumps were safe in this codebase. If any were unsafe, the plan was to drop just that one and ship the other two; that wasn't needed.

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Findings

  • [Major] Mixed major versions in the Electron packaging chain after lockfile update — [email protected] is resolved with [email protected], and [email protected] also resolves against that same 25.x Squirrel package. This cross-major pairing can create release-time regressions on Windows installers that unit tests/typecheck won’t catch. Evidence: pnpm-lock.yaml:107, pnpm-lock.yaml:6936, pnpm-lock.yaml:7538.
    Suggested fix:
    {
      "devDependencies": {
        "electron-builder": "^26.8.1",
        "electron-builder-squirrel-windows": "26.8.1"
      }
    }
    Then regenerate lockfile to ensure [email protected] resolves with [email protected].

Summary

  • Review mode: initial
  • 1 issue found in changed lines: lockfile currently resolves a mixed 26.x/25.x electron-builder toolchain.
  • docs/VISION.md and docs/PRINCIPLES.md were referenced in instructions but are not present in this checkout (Not found in repo/docs).

Testing

  • Not run (automation)

open-codesign Bot

Comment thread pnpm-lock.yaml Outdated
specifier: ^25.1.8
version: 25.1.8([email protected])
specifier: ^26.8.1
version: 26.8.1([email protected])
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[email protected] is currently locked with [email protected] here. Please re-resolve lockfile so the Squirrel package matches 26.x to avoid Windows installer regressions.

Suggested fix:

{
  "devDependencies": {
    "electron-builder-squirrel-windows": "26.8.1"
  }
}

…der / pptxgenjs)

- lucide-react: 0.460.0 -> 1.8.0 (apps/desktop). v1 removes brand icons (Github, Slack, Figma, etc.) and renames a few — none used in this codebase, so no import changes required.
- electron-builder: 25.1.8 -> 26.8.1 (apps/desktop, dev). Build/release-only. Our electron-builder.yml uses no advanced features that v26 changed (no flatpak, no custom collectors, no plist tweaks).
- pptxgenjs: 3.12.0 -> 4.0.1 (packages/exporters). Lazy-loaded via dynamic import in pptx.ts. Our usage (addSlide / slide.addText / writeFile) is unchanged in v4 — v4 breakers are around chart props, defineSlideMaster reuse, and SchemeColor->ThemeColor, none of which we touch.

PRINCIPLES checks:
- Compatibility: green — typecheck, all 366 tests, lint, boot smoke all green.
- Upgradeability: green — moves us off three pre-1.0 / EOL majors.
- No bloat: green — net replacements, install size unchanged within rounding.
- Elegance: green — pure dep bumps, no code churn.
@hqhq1025 hqhq1025 force-pushed the wt/sec-deps-low-risk-bump branch from 0b0358f to 4e4c92b Compare April 19, 2026 09:35
@hqhq1025
Copy link
Copy Markdown
Collaborator Author

Addressed Codex [Major]: cross-major Windows installer toolchain.

Pinned electron-builder-squirrel-windows to 26.8.1 in apps/desktop/package.json and regenerated the lockfile. All [email protected] entries are gone from pnpm-lock.yaml — the toolchain now resolves consistently at 26.x.

Verified: pnpm test (334 passed), pnpm typecheck, pnpm lint all green.

Commit: 4e4c92b

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Findings

  • No high-confidence issues found in added/modified lines.

Summary

  • Review mode: follow-up after new commits
  • Prior mixed-major packaging-chain issue is resolved in this head (evidence: pnpm-lock.yaml:107, pnpm-lock.yaml:7050).
  • Constraint checks from this diff: no direct provider SDK imports, no silent-fallback pattern, and no UI hardcoded token violations in touched files.
  • docs/VISION.md and docs/PRINCIPLES.md: Not found in repo/docs.

Testing

  • Not run (automation)

open-codesign Bot

@hqhq1025 hqhq1025 merged commit ab96cc5 into main Apr 19, 2026
5 of 6 checks passed
@hqhq1025 hqhq1025 deleted the wt/sec-deps-low-risk-bump branch April 19, 2026 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant