Skip to content

Release/next#61

Merged
leoafarias merged 85 commits into
mainfrom
release/next
May 6, 2026
Merged

Release/next#61
leoafarias merged 85 commits into
mainfrom
release/next

Conversation

@leoafarias
Copy link
Copy Markdown
Collaborator

No description provided.

- Updated the SplitView UI to reflect build status with loading indicators and error messages.
- Removed the DeckWatcher implementation for unsupported platforms and related types.
- Introduced DeckBuildStatus, DeckBuildPhase, and DeckBuildError models for better build status management.
- Updated tests to cover new build status handling and ensure proper functionality.
- Removed deprecated code and cleaned up asset cache store initialization.
- Adjusted pubspec dependencies to remove unnecessary references.
…eckLoader implementations

- Removed BundledDeckService and its associated tests.
- Introduced FileDeckLoader for file-based loading and BundledDeckLoader for asset-based loading.
- Updated DeckController to use DeckLoader instead of DeckService.
- Modified DeckControllerBuilder to instantiate DeckLoader based on runtime capabilities.
- Enhanced tests for DeckLoader to cover various loading scenarios and error handling.
- Added `dart_mappable` and related packages to `pubspec.yaml`.
- Updated tests for `Deck`, `Slide`, `Asset`, and `Block` models to improve validation and error handling.
- Enhanced parsing and serialization tests for `GeneratedAsset` and `GeneratedAssetsReference`.
- Ensured immutability of lists in models by adding tests for unmodifiable collections.
- Refactored tests to use non-const constructors for `Slide` and other models for consistency.
- Improved error handling in `ContentBlock` and `WidgetBlock` tests.
- Updated `SlideConfiguration` to use non-const `SlideOptions`.
…entry point

- Created `all_tests.dart` to aggregate all integration test suites for shared app lifecycle.
- Removed `app_test.dart` as its functionality is now covered by the consolidated tests.
- Added new test files for keyboard navigation, navigation, slide content, startup, and UI controls.
- Updated helper functions for better exception handling and added new utility methods.
- Modified `melos.yaml` to run the consolidated test file for integration tests on Linux and macOS.
- Enhanced `DeckConfigurationMapper` to include `superdeckDir` field.
- Adjusted import paths for various files to improve module organization.
- Introduced separate loaders for bundled and file-based deck loading.
- Added version command to CLI for displaying the current SuperDeck version.
- Enhanced path validation in DeckConfiguration to restrict absolute paths and traversal segments.
- Implemented tests for version command and configuration validation.
Restructure deck loaders to use status-only stream API, simplify
bundled loader, and rename thumbnailFile to thumbnailKey throughout
for clarity. Clean up core models and tests.
Remove the 100ms render settle delay and retry loop from
SlideCaptureService by disabling animations during export via the
isExporting flag. Add thumbnailKey-based cache invalidation to
ThumbnailService and timing logs for diagnostics.

Results: ~3.3x faster on macOS, ~3.6x faster on Chrome (20 slides
concurrent: 1.6s -> 0.5s).
Add IndexedDB backing to the web AssetCacheStore so thumbnails
survive page reloads. Uses write-through caching with in-memory
fast path and graceful fallback to memory-only if IndexedDB is
unavailable. Refactor IO store to use path_provider with lazy init.
- Moved JSON snapshot utilities to a new helper file for better organization.
- Updated test files to use the new helper imports.
- Created a new testing utility for creating temporary files and directories.
- Added a new file watcher test to ensure file change detection works as expected.
- Introduced a new app theme for consistent styling across the application.
- Updated references in the deck controller tests to use the new helper imports.
- Removed outdated slide template test and consolidated test helpers into a single file.
- Added fixture YAML files for testing configurations.
Group files by domain across core, builder, superdeck, and cli:
- core: deck/, markdown/, cache/, utils/
- builder: build/, utils/ (parsers/, tasks/, assets/ unchanged)
- superdeck: relative barrel exports, test/helpers/
- cli: test/src/commands/

Update AGENTS.md with file organization convention.
Verifies that when presentation content changes, only slides with
updated thumbnailKeys are regenerated while unchanged slides reuse
their cached AsyncThumbnail instances.
…ting, theming, and database management guidelines
- Removed the `styling.dart` file and directly imported necessary components in `default_style.dart`.
- Enhanced the `app_shell.dart` to manage thumbnail warmup more efficiently, ensuring thumbnails are generated only when necessary.
- Updated `superdeck_app.dart` to enforce workspace or asset cache store requirements when using a custom deck loader.
- Adjusted imports across various test files to reflect the new structure and ensure proper functionality.
- Added tests for the `DeckPresentationState` to verify thumbnail generation and disposal behavior.
- Created a new public API test to validate exports from the SuperDeck library.
- Removed obsolete navigation service tests and cleaned up related code.
Docs:
- Add reference pages: builder-api, deck-controller, navigation, pdf-export
- Update guides: cli-reference, custom-widgets, markdown-authoring
- Refresh deck-options reference and package READMEs

Core lib:
- Remove superdeck_plugin.dart and drop its export from superdeck.dart
- Tighten deck_controller, deck_options, deck_presentation_state, app_shell,
  bottom_bar, and superdeck_app
- Regenerate deck_options.mapper.dart via dart_mappable

Tests:
- New integration suites (authoring, pdf export, watch) and cli workflows
- Golden coverage (block_aligned_center, plain_markdown_slide, section_two_blocks)
- Builtins widget tests (dartpad, image, qr_code) and deck controller navigation
- Builder watch test and core deck_loader events test
- Update deck_options and deck_presentation_state tests

Config:
- Add packages/cli/.superdeck/ to .gitignore (transient build state)
- Add packages/cli/dart_test.yaml to serialize integration tests
- Tweak test.yml workflow, playwright.config.ts, melos.yaml, pubspec.yaml

Note: .github/workflows/test.yml changes deferred to follow-up — see TODO.md (OAuth workflow scope needed).
…lide handling and improve exception assertions
- Updated integration tests for slide content to include health checks and capture slides for review.
- Introduced representative authored layouts and widgets in tests.
- Modified section and block properties to enforce scrolling only on child blocks.
- Improved documentation to clarify block and section properties.
- Refactored section parser to reject scrollable property on sections.
- Added new test cases for section-level validation and layout options.
- Enhanced image and QR code widget tests for better coverage.
- Implemented new fixtures for testing content and widget combinations.
- Ensured proper handling of header and footer space in slide rendering.
…ate image widget URI parsing for Windows paths; enhance block widget rendering logic for scrollable and static states; export deck controller in superdeck; add comprehensive layout and feature matrix integration tests; improve image widget tests for various source types; ensure error handling in custom block widgets; implement scrollable widget tests for drag gestures; validate notes panel functionality in slides.
@docs-page
Copy link
Copy Markdown

docs-page Bot commented Apr 22, 2026

To view this pull requests documentation preview, visit the following URL:

docs.page/btwld/superdeck~61

Documentation is deployed and generated using docs.page.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 22, 2026

Visit the preview URL for this PR (updated for commit c34e462):

https://superdeck-dev--pr61-release-next-mn3qzozy.web.app

(expires Thu, 04 Jun 2026 21:04:04 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: bd68fc230762285849207e7e120aaf87cd4ca2f9

# Conflicts:
#	.claude/skills~origin_main
- Deleted the `superdeck_pdf` plugin, including its source files, documentation, and tests.
- Removed related files such as `.pubignore`, `CHANGELOG.md`, `LICENSE`, `README.md`, and `pubspec.yaml`.
- Cleaned up the `superdeck` package documentation and updated links to reflect the new repository ownership.
@leoafarias leoafarias merged commit c849878 into main May 6, 2026
6 checks passed
@leoafarias leoafarias deleted the release/next branch May 6, 2026 00:43
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