Promote AgentCompany-New to the repository root and retire the old app

The legacy application - its src, tests, landing site, promo assets, docs,
release tooling, CI workflows, and root configs - leaves the tree; it stays
reachable in history. Everything under AgentCompany-New moves up unchanged:
same package name, so the production userData/database path is untouched,
and e2e/build scripts already resolved paths relative to the project. The
developer cred.txt stays gitignored at its new location. Full verify:ci
passes from the new root.
This commit is contained in:
ZacharyZhang-NY committed 2026-07-07 00:04:13 -04:00
1 parent 2350f744e3
commit 07d0b4587d
1904 files changed
+1133 -282075

No files matched your search

-291
View File
@@ -1,291 +0,0 @@
name: Build & Release
on:
push:
tags:
- 'v*'
pull_request:
branches: [main]
workflow_dispatch:
inputs:
publish:
description: 'Publish to GitHub Releases'
required: false
type: boolean
default: false
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
env:
PNPM_VERSION: '10.24.0'
NODE_VERSION: '22'
CI_RELEASE_TAG: ci-build-${{ github.run_id }}
jobs:
# ─────────────────────────────────────────────
# Stage 1: Lint & Typecheck (fast feedback)
# ─────────────────────────────────────────────
check:
name: Lint & Typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm audit:deps
- run: pnpm typecheck
- run: pnpm lint
# ─────────────────────────────────────────────
# Stage 2: Unit Tests
# ─────────────────────────────────────────────
test:
name: Unit Tests
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm test:unit
- run: pnpm test:integration
# ─────────────────────────────────────────────
# Stage 3: Build matrix (parallel per platform)
# ─────────────────────────────────────────────
build-macos:
name: macOS (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
needs: test
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- arch: arm64
runner: macos-14
builder_args: --mac --arm64
- arch: x64
runner: macos-15
builder_args: --mac --x64
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Decode signing certificate
if: env.CERT_B64 != ''
env:
CERT_B64: ${{ secrets.MAC_CERTIFICATE_P12_BASE64 }}
run: echo "$CERT_B64" | base64 --decode > /tmp/cert.p12
- name: Build electron-vite
run: pnpm exec electron-vite build
- name: Package & sign
run: pnpm exec electron-builder ${{ matrix.builder_args }} --config electron-builder.yml --publish never
env:
CSC_LINK: ${{ secrets.MAC_CERTIFICATE_P12_BASE64 != '' && '/tmp/cert.p12' || '' }}
CSC_KEY_PASSWORD: ${{ secrets.MAC_CERTIFICATE_PASSWORD }}
CSC_IDENTITY_AUTO_DISCOVERY: ${{ secrets.MAC_CERTIFICATE_P12_BASE64 != '' && 'true' || 'false' }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
- name: Upload to CI release (Cloudflare transport)
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release view "$CI_RELEASE_TAG" >/dev/null 2>&1 || \
gh release create "$CI_RELEASE_TAG" \
--draft \
--prerelease \
--title "CI Build $GITHUB_RUN_ID" \
--notes "Temporary build artifact transport for Cloudflare publication." \
--target "$GITHUB_SHA"
gh release upload "$CI_RELEASE_TAG" \
build/release/*.dmg \
build/release/*.zip \
build/release/*.blockmap \
build/release/latest-mac.yml \
--clobber
- name: Upload artifacts for release job
uses: actions/upload-artifact@v4
with:
name: macos-${{ matrix.arch }}
path: |
build/release/*.dmg
build/release/*.zip
build/release/*.blockmap
build/release/latest-mac.yml
build-windows:
name: Windows (${{ matrix.arch }})
runs-on: windows-latest
needs: test
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- arch: x64
builder_args: --win --x64
- arch: arm64
builder_args: --win --arm64
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Build electron-vite
run: pnpm exec electron-vite build
- name: Package
run: pnpm exec electron-builder ${{ matrix.builder_args }} --config electron-builder.yml --publish never
env:
CSC_LINK: ${{ secrets.WIN_CERTIFICATE_P12_BASE64 }}
CSC_KEY_PASSWORD: ${{ secrets.WIN_CERTIFICATE_PASSWORD }}
- name: Upload to CI release (Cloudflare transport)
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release view "$CI_RELEASE_TAG" >/dev/null 2>&1 || \
gh release create "$CI_RELEASE_TAG" \
--draft \
--prerelease \
--title "CI Build $GITHUB_RUN_ID" \
--notes "Temporary build artifact transport for Cloudflare publication." \
--target "$GITHUB_SHA"
gh release upload "$CI_RELEASE_TAG" \
build/release/*.exe \
build/release/*.blockmap \
build/release/latest.yml \
--clobber
- name: Upload artifacts for release job
uses: actions/upload-artifact@v4
with:
name: windows-${{ matrix.arch }}
path: |
build/release/*.exe
build/release/*.blockmap
build/release/latest.yml
build-linux:
name: Linux (${{ matrix.arch }})
runs-on: ubuntu-latest
needs: test
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- arch: x64
builder_args: --linux --x64
- arch: arm64
builder_args: --linux --arm64
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Build electron-vite
run: pnpm exec electron-vite build
- name: Package
run: pnpm exec electron-builder ${{ matrix.builder_args }} --config electron-builder.yml --publish never
- name: Upload release files
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release view "$CI_RELEASE_TAG" >/dev/null 2>&1 || \
gh release create "$CI_RELEASE_TAG" \
--draft \
--prerelease \
--title "CI Build $GITHUB_RUN_ID" \
--notes "Temporary build artifact transport for Cloudflare publication." \
--target "$GITHUB_SHA"
gh release upload "$CI_RELEASE_TAG" \
build/release/*.AppImage \
build/release/*.deb \
build/release/*.rpm \
build/release/*.blockmap \
build/release/latest-linux.yml \
--clobber
- name: Upload artifacts for release job
uses: actions/upload-artifact@v4
with:
name: linux-${{ matrix.arch }}
path: |
build/release/*.AppImage
build/release/*.deb
build/release/*.rpm
build/release/*.blockmap
build/release/latest-linux.yml
# ─────────────────────────────────────────────
# Stage 4: Publish to GitHub Releases
# ─────────────────────────────────────────────
release:
name: Publish Release
runs-on: ubuntu-latest
needs: [build-macos, build-windows, build-linux]
if: startsWith(github.ref, 'refs/tags/v') || github.event.inputs.publish == 'true'
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: false
- name: Collect release files
run: |
mkdir -p release-files
find artifacts -type f \( \
-name "*.dmg" -o -name "*.zip" -o -name "*.exe" \
-o -name "*.AppImage" -o -name "*.deb" -o -name "*.rpm" \
-o -name "*.snap" -o -name "*.blockmap" \
-o -name "latest*.yml" \
\) -exec cp {} release-files/ \;
ls -lh release-files/
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
draft: true
generate_release_notes: true
files: release-files/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,76 +0,0 @@
name: Remote Boss Platforms
on:
workflow_dispatch:
inputs:
version:
description: Boss build version
required: true
type: string
release_tag:
description: Draft GitHub release tag used as the Boss transport bucket
required: true
type: string
release_title:
description: Human-readable title for the draft release
required: false
type: string
concurrency:
group: remote-boss-${{ github.ref }}-${{ inputs.release_tag }}
cancel-in-progress: false
env:
PNPM_VERSION: "10.24.0"
NODE_VERSION: "22"
jobs:
build-windows:
name: Boss Windows Installer
runs-on: windows-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm audit:deps
- name: Build Boss edition
run: node boss-build/build-boss-edition.mjs --platform=win --version=${{ inputs.version }}
shell: bash
env:
CSC_LINK: ${{ secrets.WIN_CERTIFICATE_P12_BASE64 }}
CSC_KEY_PASSWORD: ${{ secrets.WIN_CERTIFICATE_PASSWORD }}
- name: Upload release files
shell: bash
env:
GH_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ inputs.release_tag }}
RELEASE_TITLE: ${{ inputs.release_title }}
run: |
set -euo pipefail
gh release view "$RELEASE_TAG" >/dev/null 2>&1 || \
gh release create "$RELEASE_TAG" \
--draft \
--prerelease \
--title "${RELEASE_TITLE:-Boss Release $GITHUB_RUN_ID}" \
--notes "Temporary Boss transport generated by remote-boss-platforms.yml." \
--target "$GITHUB_SHA"
shopt -s nullglob
files=(
boss-build/build/out/*.exe
boss-build/build/out/*.blockmap
)
if [ ${#files[@]} -eq 0 ]; then
echo "No Boss Windows release files found."
exit 1
fi
gh release upload "$RELEASE_TAG" "${files[@]}" --clobber
@@ -1,173 +0,0 @@
name: Remote Release Platforms
on:
workflow_dispatch:
inputs:
release_tag:
description: Draft GitHub release tag used as the transport bucket
required: true
type: string
release_title:
description: Human-readable title for the draft release
required: false
type: string
concurrency:
group: remote-release-${{ github.ref }}-${{ inputs.release_tag }}
cancel-in-progress: false
env:
PNPM_VERSION: "10.24.0"
NODE_VERSION: "22"
jobs:
build-windows:
name: Windows Universal Installer
runs-on: windows-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Build electron-vite
run: pnpm exec electron-vite build
- name: Package
run: pnpm exec electron-builder --win --x64 --arm64 --config electron-builder.yml --publish never
env:
CSC_LINK: ${{ secrets.WIN_CERTIFICATE_P12_BASE64 }}
CSC_KEY_PASSWORD: ${{ secrets.WIN_CERTIFICATE_PASSWORD }}
- name: Upload release files
shell: bash
env:
GH_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ inputs.release_tag }}
RELEASE_TITLE: ${{ inputs.release_title }}
run: |
set -euo pipefail
gh release view "$RELEASE_TAG" >/dev/null 2>&1 || \
gh release create "$RELEASE_TAG" \
--draft \
--prerelease \
--title "${RELEASE_TITLE:-Remote Release $GITHUB_RUN_ID}" \
--notes "Temporary release transport generated by remote-release-platforms.yml." \
--target "$GITHUB_SHA"
shopt -s nullglob
files=(
build/release/*.exe
build/release/*.blockmap
build/release/latest.yml
)
if [ ${#files[@]} -eq 0 ]; then
echo "No Windows release files found."
exit 1
fi
gh release upload "$RELEASE_TAG" "${files[@]}" --clobber
build-linux-x64:
name: Linux x64
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Build electron-vite
run: pnpm exec electron-vite build
- name: Package
run: pnpm exec electron-builder --linux --x64 --config electron-builder.yml --publish never
- name: Upload release files
env:
GH_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ inputs.release_tag }}
RELEASE_TITLE: ${{ inputs.release_title }}
run: |
set -euo pipefail
gh release view "$RELEASE_TAG" >/dev/null 2>&1 || \
gh release create "$RELEASE_TAG" \
--draft \
--prerelease \
--title "${RELEASE_TITLE:-Remote Release $GITHUB_RUN_ID}" \
--notes "Temporary release transport generated by remote-release-platforms.yml." \
--target "$GITHUB_SHA"
shopt -s nullglob
files=()
for file in build/release/AgentCompany-*.AppImage; do
if [[ "$file" != *arm64* ]]; then
files+=("$file")
fi
done
files+=(
build/release/agent-company_*_amd64.deb
build/release/agent-company-*.x86_64.rpm
build/release/latest-linux.yml
)
if [ ${#files[@]} -eq 0 ]; then
echo "No Linux x64 release files found."
exit 1
fi
gh release upload "$RELEASE_TAG" "${files[@]}" --clobber
build-linux-arm64:
name: Linux arm64
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Build electron-vite
run: pnpm exec electron-vite build
- name: Package
run: pnpm exec electron-builder --linux --arm64 --config electron-builder.yml --publish never
- name: Upload release files
env:
GH_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ inputs.release_tag }}
RELEASE_TITLE: ${{ inputs.release_title }}
run: |
set -euo pipefail
gh release view "$RELEASE_TAG" >/dev/null 2>&1 || \
gh release create "$RELEASE_TAG" \
--draft \
--prerelease \
--title "${RELEASE_TITLE:-Remote Release $GITHUB_RUN_ID}" \
--notes "Temporary release transport generated by remote-release-platforms.yml." \
--target "$GITHUB_SHA"
shopt -s nullglob
files=(
build/release/*arm64*.AppImage
build/release/*arm64*.deb
build/release/*aarch64*.rpm
)
if [ ${#files[@]} -eq 0 ]; then
echo "No Linux arm64 release files found."
exit 1
fi
gh release upload "$RELEASE_TAG" "${files[@]}" --clobber