Skip to content

feat!: add paid AI editing workflows - #2305

Merged
yuto-trd merged 11 commits into
mainfrom
yuto-trd/paid-ai
Sep 8, 2026
Merged

feat!: add paid AI editing workflows#2305
yuto-trd merged 11 commits into
mainfrom
yuto-trd/paid-ai

Conversation

@yuto-trd

@yuto-trd yuto-trd commented Sep 5, 2026

Copy link
Copy Markdown
Member

Description

  • Add server-backed paid AI image generation, image editing, video generation, caption generation/translation, and job recovery workflows.
  • Present the workflows in non-modal AI workspaces with model-aware validation, usage estimates, prompt history, and durable account-scoped recovery.
  • Add lease-backed extension points for AI job capabilities, element-source handlers, caption codecs, and caption templates.
  • Keep generated media, caption metadata, retries, uploads, and shutdown cleanup bounded and durable.

The branch was rewritten onto origin/main as one focused commit. Unrelated changes were removed into independent PRs:

Affected areas

  • Beutl.Api: paid AI transport, models, job monitoring, retry, upload, entitlement, and extension registry contracts.
  • Beutl.Editor: asynchronous element sources, AI result application, caption codecs/templates, and serialization.
  • Beutl: AI workspace UI, account presentation, recovery, import/export, and application shutdown.
  • Extension SDK, package lifecycle handling, localization resources, and focused tests.

Breaking changes

  • Beutl.Api adds paid AI contracts and revises AI model, request, retry, upload, availability, and job capability APIs.
  • IExtensionProvider uses descriptor/lease discovery and exposes ExtensionsChanged; executable extension instances must be retained only through leases.
  • IElementAdder uses AddAsync; ElementDescription uses ElementSource and permits handler-defined duration.
  • AI result, source-handler, caption codec, and caption template contributions are registered as independent lease-backed capability slots.
  • Extension projects using these contracts must reference Beutl.Api and Beutl.Editor and migrate their registrations.

Test plan

  • GitHub build, full CPU tests, Vulkan validation tests, format check, and coverage upload passed at 5d114303a.
  • dotnet build Beutl.slnx -c Debug --no-restore --nologo — passed locally with 15 existing warnings and 0 errors.
  • Focused regression passes include 102 unit tests for AI jobs/models/captions, 15 AI importer tests, 8 element-entry headless tests, 5 video-import headless tests, and 220 public API contract tests.
  • The package-tools cancellation race passed its two-test fixture and 20 consecutive focused repetitions.
  • GPL/MIT diff scan and git diff --check passed.
  • Changed-file dotnet format --verify-no-changes passed; the full-solution check reports only the existing MediaFoundation CA1416 diagnostics locally.
  • Final branch audit: one commit and 288 files. The extracted generic lifecycle API work, DirectoryWatcher race fix, AgentHost endpoint lifecycle fix, and CI workflow edits are not present.

Fixed issues

None.

Loading
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.

2 participants