Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@

## Unreleased

## v0.1.0-alpha.5

### Added

- Create Clips is now a clearer first-class workflow, with full-video editing and clip export easier to distinguish.
- Clip preparation keeps framing and captions close at hand, with resolution, format, audio enhancement, and background-removal controls under Advanced export settings.
- Successful clip exports surface the video output and, when caption burn-in is unavailable, a matching `.srt` sidecar directly.

### Changed

- Transcript-selected clips move directly into Prepare, and newly created manual clips become the active clip immediately.
- Clip queues distinguish Prepare, Exporting, retry/failure, and Exported states; successful exports show a clearer result while batch retry and recovery remain available.
- Publishing copy is clearly optional and does not block clip export.
- Installation and first-export guidance now follows the current alpha4+ desktop workflow.

### Fixed

- Opening new media clears media-specific AI and clip state while preserving reusable provider and preference settings; reopened projects restore relevant Clips context.
- Stale AI and transcription work can no longer attach results or UI state from old media or projects to the current workspace.

### Current alpha notes

- Product version remains `0.1.0`; this release identity is `v0.1.0-alpha.5`.
- The public build remains macOS Apple Silicon (arm64) only, ad-hoc signed, and not notarized; macOS **Open Anyway** approval may be required. There is no Windows/Linux public build or social publishing API.
- Publishing copy remains optional, and caption burn-in may fall back to a real `.srt` sidecar.

## v0.1.0-alpha.4

### Added
Expand Down
12 changes: 6 additions & 6 deletions scripts/smoke-release-notes.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,12 @@ async function main() {
const sections = parseChangelog(changelog);
assert(sections.has('Unreleased'), 'repository changelog lacks Unreleased');
assert(sections.has('v0.1.0-alpha.3'), 'repository changelog lacks alpha.3 history');
assert(sections.has('v0.1.0-alpha.4'), 'repository changelog lacks alpha.4 release notes');
const repositoryDryRun = selectReleaseNotes({ releaseTag: 'v0.1.0-alpha.4' });
assert(repositoryDryRun.source === 'v0.1.0-alpha.4', 'repository dry-run did not select exact alpha.4 notes');
assert(repositoryDryRun.markdown.trim().length > 0, 'repository alpha.4 notes are empty');
const repositoryPublication = selectReleaseNotes({ releaseTag: 'v0.1.0-alpha.4', publicationNotesRequired: true });
assert(repositoryPublication.source === 'v0.1.0-alpha.4', 'repository publication did not select exact alpha.4 notes');
assert(sections.has('v0.1.0-alpha.5'), 'repository changelog lacks alpha.5 release notes');
const repositoryDryRun = selectReleaseNotes({ releaseTag: 'v0.1.0-alpha.5' });
assert(repositoryDryRun.source === 'v0.1.0-alpha.5', 'repository dry-run did not select exact alpha.5 notes');
assert(repositoryDryRun.markdown.trim().length > 0, 'repository alpha.5 notes are empty');
const repositoryPublication = selectReleaseNotes({ releaseTag: 'v0.1.0-alpha.5', publicationNotesRequired: true });
assert(repositoryPublication.source === 'v0.1.0-alpha.5', 'repository publication did not select exact alpha.5 notes');
assert(selectReleaseNotes({ releaseTag: 'v0.1.0-alpha.3' }).source === 'v0.1.0-alpha.3', 'exact release section did not win');

const fixtureRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'scriptcut-release-notes-'));
Expand Down