# content
Project activity for April 20, 2026:

package-paper-destruction

5 commits

Enhanced media export capability by adding NSPhotoLibraryAddUsageDescription to ensure the Save Image option reliably appears in the system share sheet, resolving a critical user-facing issue.

Launched a new deckle edge-behavior experiment to explore and evaluate a visually distinct page-turn effect in the reading experience, indicating early-stage design validation.

Incremented the RipPlayground build version (47 → 48) for an over-the-air (OTA) rollout, enabling delivery of prior changes and stabilizing the distribution pipeline.

Refactored and exposed the core speed-extraction functionality by making extractSpeeds a public library API, allowing external integrators to programmatically extract reading speeds; concurrently updated DocC documentation to surface this API and corrected stale symbol links for improved developer experience.

shared-actions

5 commits

Replaced static deployment config with a dynamic, automated Sam deployment workflow: The team removed the hardcoded deploy-sam.yml and introduced a deploy-sam restart plan, enabling more resilient and repeatable deployments.

Automated Swift package preparation: The workflow now auto-runs swift package archive before sam build, ensuring that Swift source code is correctly packaged into a zip archive prior to AWS SAM processing—critical for reliable Lambda deployment of Swift-based functions.

Strengthened deployment validation: Added verification that the swift package archive step successfully produces a valid zip, catching failures early and preventing malformed deployments.

Integrated team feedback: Finalized the implementation based on internal Opus review feedback (items I1–I3, S1–S4), refining both the packaging process and deployment reliability.