Skip to content

Commit 126be75

Browse files
committed
chore: prepare 0.3.0 open source release
1 parent da49f0a commit 126be75

231 files changed

Lines changed: 23281 additions & 13923 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
name: Bug report
3+
about: Report a reproducible problem in Funplay
4+
title: "[Bug]: "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## What happened?
10+
11+
12+
## Steps to reproduce
13+
14+
1.
15+
2.
16+
3.
17+
18+
## Expected behavior
19+
20+
21+
## Environment
22+
23+
- OS:
24+
- Funplay version or commit:
25+
- Runtime:
26+
- Provider / MCP server, if relevant:
27+
28+
## Logs or screenshots
29+
30+
Attach screenshots, smoke artifacts, or relevant logs. Do not include API keys or secrets.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
name: Feature request
3+
about: Suggest a product, agent, engine, or workflow improvement
4+
title: "[Feature]: "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Problem
10+
11+
What user problem should this solve?
12+
13+
## Proposed solution
14+
15+
16+
## Alternatives considered
17+
18+
19+
## Additional context
20+
21+
Screenshots, mockups, related tools, or workflow notes are welcome.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## Summary
2+
3+
-
4+
5+
## Verification
6+
7+
- [ ] `npm run build`
8+
- [ ] `npm run test:runtime`
9+
- [ ] UI checks, if applicable: `npm run ui:smoke`, `npm run ui:electron-smoke`, `npm run ui:maturity-gate`
10+
11+
## Screenshots / Artifacts
12+
13+
Add screenshots or artifact paths for UI changes.
14+
15+
## Risks
16+
17+
List known risks, migrations, or follow-up work.

.github/workflows/release.yml

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
workflow_dispatch:
8+
inputs:
9+
tag_name:
10+
description: 'Release tag to publish, for example v0.3.0'
11+
required: true
12+
type: string
13+
14+
permissions:
15+
contents: write
16+
17+
jobs:
18+
verify:
19+
name: Verify release gates
20+
runs-on: ubuntu-latest
21+
timeout-minutes: 45
22+
steps:
23+
- name: Check out repository
24+
uses: actions/checkout@v4
25+
26+
- name: Set up Node
27+
uses: actions/setup-node@v4
28+
with:
29+
node-version: '22'
30+
cache: npm
31+
32+
- name: Install dependencies
33+
run: npm ci
34+
35+
- name: Audit release configuration
36+
run: npm run release:audit
37+
38+
- name: Build
39+
run: npm run build
40+
41+
- name: Runtime tests
42+
run: npm run test:runtime
43+
44+
- name: UI smoke
45+
run: npm run ui:smoke
46+
47+
- name: UI maturity gate
48+
run: npm run ui:maturity-gate
49+
50+
- name: Agent benchmark
51+
run: npm run agent:benchmark
52+
53+
mac:
54+
name: Build macOS release
55+
needs: verify
56+
runs-on: macos-latest
57+
timeout-minutes: 90
58+
env:
59+
APPLE_ID: ${{ secrets.APPLE_ID }}
60+
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
61+
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
62+
CSC_LINK: ${{ secrets.MAC_CSC_LINK }}
63+
CSC_KEY_PASSWORD: ${{ secrets.MAC_CSC_KEY_PASSWORD }}
64+
steps:
65+
- name: Check out repository
66+
uses: actions/checkout@v4
67+
68+
- name: Set up Node
69+
uses: actions/setup-node@v4
70+
with:
71+
node-version: '22'
72+
cache: npm
73+
74+
- name: Install dependencies
75+
run: npm ci
76+
77+
- name: Build split-architecture macOS artifacts
78+
run: npm run dist:mac:split
79+
80+
- name: Verify macOS update metadata
81+
run: npm run release:verify-mac-updates
82+
83+
- name: Restore Electron native ABI
84+
if: always()
85+
run: npm run rebuild:native:force
86+
87+
- name: Upload macOS artifacts
88+
uses: actions/upload-artifact@v4
89+
with:
90+
name: funplay-macos
91+
if-no-files-found: error
92+
path: |
93+
release/*.dmg
94+
release/*.dmg.blockmap
95+
release/*.zip
96+
release/*.zip.blockmap
97+
release/latest-mac.yml
98+
release/latest-mac-arm64.yml
99+
release/latest-mac-x64.yml
100+
101+
windows:
102+
name: Build Windows release
103+
needs: verify
104+
runs-on: windows-latest
105+
timeout-minutes: 75
106+
steps:
107+
- name: Check out repository
108+
uses: actions/checkout@v4
109+
110+
- name: Set up Node
111+
uses: actions/setup-node@v4
112+
with:
113+
node-version: '22'
114+
cache: npm
115+
116+
- name: Install dependencies
117+
run: npm ci
118+
119+
- name: Build Windows x64 artifacts
120+
run: npm run dist:win:x64
121+
122+
- name: Restore Electron native ABI
123+
if: always()
124+
run: npm run rebuild:native:force
125+
126+
- name: Upload Windows artifacts
127+
uses: actions/upload-artifact@v4
128+
with:
129+
name: funplay-windows
130+
if-no-files-found: error
131+
path: |
132+
release/*.exe
133+
release/*.exe.blockmap
134+
release/latest.yml
135+
136+
publish:
137+
name: Publish draft GitHub Release
138+
needs:
139+
- mac
140+
- windows
141+
runs-on: ubuntu-latest
142+
timeout-minutes: 15
143+
env:
144+
GH_TOKEN: ${{ github.token }}
145+
RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag_name || github.ref_name }}
146+
steps:
147+
- name: Download release artifacts
148+
uses: actions/download-artifact@v4
149+
with:
150+
path: artifacts
151+
152+
- name: Create or update draft release
153+
run: |
154+
set -euo pipefail
155+
mapfile -d '' files < <(find artifacts -type f -print0 | sort -z)
156+
if [ "${#files[@]}" -eq 0 ]; then
157+
echo "No release artifacts found."
158+
exit 1
159+
fi
160+
161+
title="Funplay ${RELEASE_TAG#v}"
162+
notes=$'Automated Funplay desktop release artifacts.\n\nReview macOS notarization, Windows installer behavior, and update metadata before publishing this draft release.'
163+
164+
if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then
165+
gh release upload "$RELEASE_TAG" "${files[@]}" --clobber
166+
else
167+
gh release create "$RELEASE_TAG" "${files[@]}" --draft --title "$title" --notes "$notes"
168+
fi

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ out/
99
release/
1010
dist/
1111
build/
12+
docs/
13+
AGENTS.md
14+
CLAUDE.md
1215

1316
# Logs
1417
*.log

AGENTS.md

Lines changed: 0 additions & 91 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Changelog
2+
3+
All notable changes to Funplay will be documented in this file.
4+
5+
This project follows a pre-1.0 release flow. Minor versions may include breaking changes while the agent runtime, desktop UI, and provider contracts are still stabilizing.
6+
7+
## Unreleased
8+
9+
### Added
10+
11+
- Open-source project governance files and release hardening checklist.
12+
- Desktop UI smoke and maturity gates for light/dark app-scoped scenarios.
13+
- Asset generation provider configuration and generation job flows.
14+
- Split-architecture macOS release metadata validation.
15+
16+
### Changed
17+
18+
- Agent runtime architecture continues moving toward Agent Core parts as the primary ledger.
19+
- Provider, MCP, and asset provider settings use a unified list/detail information architecture.
20+
- Chat tool activity uses compact disclosure-style summaries after completion.
21+
22+
### Removed
23+
24+
- Legacy execution-plan runtime surface is being retired in favor of the unified agent loop.

0 commit comments

Comments
 (0)