Skip to content

feat: drawing/signature mode, release pipeline, and CI#16

Merged
julio73 merged 1 commit intomainfrom
feat/drawing-mode-and-release-infra
Mar 13, 2026
Merged

feat: drawing/signature mode, release pipeline, and CI#16
julio73 merged 1 commit intomainfrom
feat/drawing-mode-and-release-infra

Conversation

@julio73
Copy link
Copy Markdown
Owner

@julio73 julio73 commented Mar 13, 2026

feat: drawing/signature mode, release pipeline, and CI

Changes

Drawing/Signature Mode

  • DrawingSession (TouchpadInputCore) — TouchEventReceiver that records multi-finger strokes with undo, clear, and NSImage export
  • DrawingCanvasView — live canvas with color swatches, line width picker, undo/clear, PNG export via save panel
  • Keyboard / Drawing segmented picker in ContentView header; swaps MultitouchCapture.shared.session on switch

Release Infrastructure

  • scripts/release.sh — full build → .app bundle → codesign → notarize → staple → signed DMG pipeline for Developer ID direct distribution
  • Sources/TouchpadInputApp/TouchpadInputApp.entitlementsapp-sandbox=false, cs.disable-library-validation=true (for MultitouchSupport dlopen under hardened runtime)
  • Info.plist — added CFBundleShortVersionString, CFBundleVersion, CFBundlePackageType, CFBundleExecutable, LSMinimumSystemVersion

CI

  • .github/workflows/ci.ymlswift build + swift test on every push and PR (macos-15, Xcode toolchain)

Notes

  • Distribution path is notarized Developer ID DMG (not MAS — private MultitouchSupport API blocks App Sandbox)
  • scripts/release.sh requires NOTARIZE_APPLE_ID, NOTARIZE_TEAM_ID, NOTARIZE_PASSWORD env vars (app-specific password from appleid.apple.com)

- Add DrawingSession (TouchpadInputCore) — TouchEventReceiver that records
  multi-finger strokes; supports undo, clear, and NSImage export
- Add DrawingCanvasView — live canvas with color swatches, line width picker,
  undo/clear, and PNG export via save panel
- Add Keyboard/Drawing mode toggle in ContentView header; swaps
  MultitouchCapture.shared.session on switch
- Add Info.plist version strings (CFBundleShortVersionString, CFBundleVersion,
  CFBundlePackageType, CFBundleExecutable, LSMinimumSystemVersion)
- Add TouchpadInputApp.entitlements (no sandbox, disable-library-validation
  for MultitouchSupport dlopen under hardened runtime)
- Add scripts/release.sh — full build → .app bundle → codesign → notarize →
  staple → DMG pipeline for Developer ID direct distribution
- Add .github/workflows/ci.yml — swift build + swift test on push/PR (macos-15)
@julio73 julio73 merged commit 415e039 into main Mar 13, 2026
1 check passed
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