12 Commits
Author SHA1 Message Date
LiHaohuaandClaude Opus 4.6 4c1f3d4170 chore: remove tauri app and frontend code
Only czdev CLI remains in the workspace. Tauri GUI was unused and
causing CI failures.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 18:46:35 +08:00
LiHaohuaandClaude Opus 4.6 83a29467f4 feat(czdev): publish reads store section from app-builder.json
- Uploads screenshots + icon + meta.json alongside deb
- Requires store.screenshots in app-builder.json
- title auto-read from app_name field

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 18:27:00 +08:00
LiHaohuaandClaude Opus 4.6 1694eb8637 feat(czdev): use git+lfs for publish instead of HTTP LFS API
- Requires git-lfs installed (checked at publish start)
- Uses git init + fetch --filter=blob:none + push (SSH)
- No full clone, no LFS download, minimal network
- Fixes LFS verify 403 issues with HTTP proxies
- scope reverted to public_repo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 17:48:55 +08:00
LiHaohuaandClaude Opus 4.6 54bb15f55d fix(czdev): fix proxy priority and skip LFS verify on 403
- Read ALL_PROXY first (socks5 works better in China)
- LFS verify is best-effort (some org configs reject OAuth tokens)
- Revert scope back to public_repo (sufficient after org approval)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 16:17:43 +08:00
LiHaohuaandClaude Opus 4.6 79432a67f9 feat(czdev): upload deb via LFS batch API instead of raw git blob
Creates proper LFS pointer in the git tree so .deb files are stored
in LFS storage, keeping the repo lightweight.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 16:02:04 +08:00
LiHaohuaandClaude Opus 4.6 f64a3c8d67 feat(czdev): add i18n with rust-i18n + sys-locale
Auto-detects system language (en/zh-CN/zh-TW).
Translations in crates/czdev/locales/*.yml, compiled into binary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 15:50:36 +08:00
LiHaohuaandClaude Opus 4.6 34e3f771cd feat(czdev): add bump command + install docs in README
czdev bump: queries published versions, shows next patch version.
README: added install instructions and publish workflow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 15:14:29 +08:00
LiHaohuaandClaude Opus 4.6 ca6d6fbfc4 chore(czdev): set OAuth App client_id for CZDev CLI
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 15:07:36 +08:00
LiHaohuaandClaude Opus 4.6 544f75c33b feat(czdev): add login, publish, unpublish commands
- czdev login: GitHub OAuth Device Flow authentication
- czdev publish: upload .deb to CardputerZero/packages via PR
  - Preflight: .desktop check, email match, version bump check
- czdev unpublish: ownership-verified removal PR
- release-czdev.yml: cross-compile for macOS/Linux/Windows

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 15:03:06 +08:00
LiHaohuaandClaude Opus 4.6 17805e3c04 docs: add Chinese and Japanese quickstart guides for czdev CLI
Adds QUICKSTART_ZH.md and QUICKSTART_JA.md covering the full desktop
dev workflow (doctor → run → watch → deploy). Links added to the
English quickstart and README.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 20:00:16 +08:00
LiHaohuaandClaude Opus 4.7 a7b3e34387 czdev: cmake_args / cmake_target / env passthrough + prebuilt-emulator-app runtime
Three small features so more app types can plug into the desktop loop
without touching emulator or UserDemo sources:

- Manifest gains cmake_args (extra -DX=Y) and cmake_target fields.
  NC2000 uses both: passes ENABLE_PORT_LVGL=ON, points the SDK/LVGL
  paths via ${CZ_SDK_DIR}/${CZ_LVGL_DIR} placeholders, and builds the
  nc2000_lvgl target instead of the default bin_name.
- Manifest gains `env` with ${APP_DIR} substitution so apps can
  declare runtime env vars (e.g. NC2000_ROM_DIR pointing at the
  checked-out ROMs directory).
- New `runtime: "prebuilt-emulator-app"` for apps whose library is
  built by the emulator's own CMake (e.g. APPLaunch via the UserDemo
  submodule). czdev skips cmake for these and uses the pre-staged
  file directly. Also fixed a same-path copy truncating the prebuilt
  dylib to 0 bytes on macOS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:30:34 +08:00
LiHaohuaandClaude Opus 4.7 51c33c69bb Add czdev CLI (doctor/list/build/run/watch/deploy) in Cargo workspace
Turns the repo into a Cargo workspace with src-tauri and crates/czdev
as members. czdev is the desktop dev loop: `czdev doctor` checks SDL2
and toolchain deps with per-OS install hints; `czdev build` configures
and builds an app's shared library into .czdev/build/; `czdev run`
first-time-builds the emulator submodule, stages the .dylib/.so into
emulator/build/apps/, and launches it; `czdev watch` polls source
mtimes (no notify crate) and rebuilds+relaunches on change; `czdev
deploy` is an scp+dpkg wrapper for pre-built .debs.

.gitignore picks up target/ and per-app .czdev/ caches.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:30:34 +08:00