Skip to content
Closed
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
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,19 @@ corepack pnpm --filter @autopet/image-pipeline test
.\.venv\Scripts\python.exe -m unittest discover -s packages\image-pipeline
```

### Runtime Windows Unpacked Packaging

The Runtime has a local Windows unpacked packaging command for validation:

```powershell
corepack pnpm package:runtime:win:dir
```

This produces a local unpacked Runtime build only. It does not create an
installer, publish a GitHub Release binary, package Maker, or package Python.
See `docs/workflows/runtime-windows-unpacked-package.md` for the smoke
workflow.

### CI

The repository includes a minimal GitHub Actions workflow that validates the
Expand Down
16 changes: 16 additions & 0 deletions apps/runtime/electron-builder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
appId: io.github.arcueidmp.autopet.runtime
productName: AutoPet Runtime
asar: true
electronVersion: 33.4.11

directories:
output: ../../release/runtime

files:
- package.json
- out/**/*

win:
signAndEditExecutable: false
target:
- dir
12 changes: 10 additions & 2 deletions apps/runtime/electron.vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,16 @@ const workspaceAliases = {
};

export default defineConfig({
main: {},
preload: {},
main: {
resolve: {
alias: workspaceAliases
}
},
preload: {
resolve: {
alias: workspaceAliases
}
},
renderer: {
resolve: {
alias: workspaceAliases
Expand Down
60 changes: 38 additions & 22 deletions docs/dev-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Current Handoff State

Date: 2026-05-21
Date: 2026-05-25

AutoPet is still in the v0.1 implementation stage. This is not a v0.1 release.

Expand All @@ -22,21 +22,25 @@ Branch guidance:

```text
Start future work from clean main, then create a small task-specific branch for
the current Stage 9 subtask.
the current Step 10 task.
```

Current handoff state:

```text
Stage 8 is complete.
Stage 9 is complete through PR #20.
Stage 9.1 added the manual E2E smoke checklist and source-of-truth cleanup.
Stage 9.2 manual E2E smoke passed on 2026-05-21.
Stage 9.3 added the minimal non-GUI Windows CI workflow and was merged in
PR #18.
Stage 9.4 release-decision readiness notes were merged in PR #19.
PR #19 merge commit: e765531.
PR #19 pull_request CI run: green.
PR #19 main push CI run for e765531: green.
Stage 9 final handoff cleanup was merged in PR #20.
PR #20 merge commit: 51c90c2.
Step 10 has begun.
Stage 10.1 is Runtime Windows unpacked packaging foundation.
This Stage 10.1 task is not a release, tag, installer, GitHub Release binary,
or artifact publishing task.
```

Known merged pull requests documented in this log:
Expand All @@ -61,6 +65,7 @@ PR #16: Refresh source of truth after Stage 8
PR #17: Add Stage 9 E2E smoke checklist
PR #18: Add Stage 9 validation workflow
PR #19: Add v0.1 release readiness notes
PR #20: Finalize Stage 9 handoff
```

Completed stages:
Expand All @@ -83,6 +88,9 @@ Completed stages:
- Stage 9.2: Manual Maker export to Runtime `Load Pet...` E2E smoke passed.
- Stage 9.3: Minimal non-GUI Windows CI workflow.
- Stage 9.4: Completed v0.1 release-decision readiness notes.
- Stage 9 final handoff cleanup through PR #20.
- Step 10 has begun.
- Stage 10.1: Runtime Windows unpacked packaging foundation.

Latest known verification:

Expand Down Expand Up @@ -161,21 +169,25 @@ docs/pet-schema.md
docs/release-readiness.md
docs/workflows/codex-pr-workflow.md
docs/workflows/v0.1-e2e-smoke-checklist.md
docs/workflows/runtime-windows-unpacked-package.md
.github/workflows/ci.yml
```

Current recommended next task:

```text
Make a human v0.1 release decision.
Do not tag or publish a release unless explicitly requested by the human.
Do not add new features before that release decision.
Run packaged Runtime manual smoke using
docs/workflows/runtime-windows-unpacked-package.md.
If it fails, split fixes into small bugfix PRs.
Do not package Maker or publish artifacts unless explicitly requested by the
human.
```

Stage 9 should not assume installer creation, GitHub Release binaries, release
publishing, zip package support, rembg, cloud APIs, persistent settings, Runtime
launching from Maker, system tray, multi-pet support, or plugin support unless
the human explicitly confirms that scope.
Step 10.1 should not assume release creation, tag creation, installer creation,
GitHub Release binaries, artifact publishing, Maker packaging, Python bundling,
zip package support, rembg, cloud APIs, persistent settings, Runtime launching
from Maker, system tray, multi-pet support, plugin support, or new animation
features unless the human explicitly confirms that scope.

---

Expand Down Expand Up @@ -1033,26 +1045,29 @@ This cleanup should be kept separate from feature work.

---

## Recommended Stage 9 Task
## Recommended Step 10 Task

Recommended next task:

```text
Make a human v0.1 release decision.
Do not tag or publish a release unless explicitly requested by the human.
Do not add new features before that release decision.
Run packaged Runtime manual smoke using
docs/workflows/runtime-windows-unpacked-package.md.
If it fails, split fixes into small bugfix PRs.
Do not package Maker or publish artifacts unless explicitly requested by the
human.
```

Stage 9.1 checklist path:
Stage 10.1 packaging smoke checklist path:

```text
docs/workflows/v0.1-e2e-smoke-checklist.md
docs/workflows/runtime-windows-unpacked-package.md
```

Stage 9 should not assume installer work, GitHub Release binaries, zip package
support, rembg, cloud APIs, persistent settings, Runtime launching from Maker,
system tray, multi-pet support, or plugin support unless the human explicitly
confirms that scope.
Step 10.1 should not assume release creation, tag creation, installer work,
GitHub Release binaries, artifact publishing, Maker packaging, Python bundling,
zip package support, rembg, cloud APIs, persistent settings, Runtime launching
from Maker, system tray, multi-pet support, plugin support, or new animation
features unless the human explicitly confirms that scope.

---

Expand All @@ -1071,6 +1086,7 @@ docs/pet-schema.md
docs/release-readiness.md
docs/workflows/codex-pr-workflow.md
docs/workflows/v0.1-e2e-smoke-checklist.md
docs/workflows/runtime-windows-unpacked-package.md
.github/workflows/ci.yml
```

Expand Down
80 changes: 80 additions & 0 deletions docs/workflows/runtime-windows-unpacked-package.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Runtime Windows Unpacked Package Smoke

## Purpose

This workflow is the local Runtime Windows unpacked packaging smoke for Step
10.1. It verifies that the Runtime app can be built into a launchable unpacked
Windows directory.

## Scope

This workflow covers Runtime packaging only.

## Non-Goals

- No Maker packaging.
- No Python bundling.
- No installer.
- No portable single exe.
- No GitHub Release binary.
- No artifact publishing.
- No auto-updater.
- No new Runtime features.

## Preconditions

- Use Windows 10/11.
- Use PowerShell from the repository root.
- Install JavaScript dependencies before packaging.
- Start from clean `main`, then create a task-specific branch.

## Build Command

```powershell
corepack pnpm package:runtime:win:dir
```

## Expected Output

```text
release/runtime/win-unpacked/
```

The unpacked directory should contain `AutoPet Runtime.exe` or an equivalent
Runtime exe.

## Manual Smoke Checklist

- [ ] Confirm the working tree is clean before packaging.
- [ ] Run the package command.
- [ ] Confirm `release/runtime/win-unpacked` exists.
- [ ] Confirm the Runtime exe exists.
- [ ] Launch the Runtime exe manually.
- [ ] Confirm the sample pet displays.
- [ ] Confirm animation advances.
- [ ] Confirm the right-click menu opens.
- [ ] Confirm `Load Pet...` opens the folder picker.
- [ ] Optionally load a generated pet package from outside the repo.
- [ ] Drag the pet window.
- [ ] Use `Reset Position`.
- [ ] Toggle `Always on Top` off and on.
- [ ] Exit.
- [ ] Confirm no release output is staged or committed.

## Pass/Fail Result Template

```text
Date:
OS:
Branch:
Commit:
Node:
pnpm:
electron-builder version:
Command run:
Output path:
Exe path:
Result:
Failures observed:
Notes:
```
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"dev:maker": "pnpm --filter @autopet/maker dev",
"dev:runtime": "pnpm --filter @autopet/runtime dev",
"build": "pnpm -r --if-present build",
"package:runtime:win:dir": "pnpm --filter @autopet/runtime build && electron-builder --projectDir apps/runtime --win --x64 --dir --publish never",
"typecheck": "pnpm -r --if-present typecheck",
"lint": "pnpm -r --if-present lint",
"test": "pnpm -r --if-present test",
Expand All @@ -19,6 +20,7 @@
"@types/react-dom": "^19.0.0",
"@vitejs/plugin-react": "^4.3.4",
"electron": "^33.2.1",
"electron-builder": "^24.13.3",
"electron-vite": "^3.0.0",
"typescript": "^5.7.2",
"vite": "^6.0.0"
Expand Down
Loading
Loading