99ca24dbbc
Merge upstream origin/work 5f99533 into nigig fork alongside dev
2026-09-25 17:32:26 +03:00
Admin
d51069baea
Merge branch 'win-deck' into work
2026-09-25 10:53:36 +02:00
Admin
c023dbd28b
builder: an app edited after its build shows as needing a compile -- besides a newer release, the Builder reads Cargo's dep-info for the built app (target/release/<binary>.d) and shows 'compile' when any source it lists is newer than the app or gone, so changes made by a coding agent or the person are visible in the menu after an update; the check is cached per app (rechecked when the app is rebuilt or after 5 s)
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 10:19:39 +02:00
Admin
8f4e447367
builder: CUDA crates build in an installation whose path has a space -- nvcc cannot create its intermediate files under a TMP with a space (Downloads\makepad-builder (2)) or in the verbatim \\?\ form canonicalize gives on Windows ("Could not open output file '\\?\...\tmp/tmpxft_...'"), so with CUDA installed every crate with CUDA kernels failed (aichat and files, built by wm, on .100). On Windows TEMP/TMP/TMPDIR are the tmp folder's plain short (8.3) path; measured on .100: the verbatim and spaced TMP fail, the short one compiles
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 01:54:08 +02:00
Admin
e8dae096f5
builder: menus wrap around -- Up on the first row goes to the last and Down on the last to the first, in the Rust TUI and the shell previews' lists
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 01:53:40 +02:00
Admin
7fdb4dd742
builder: the compile bar's total is the app's own crates -- the estimate takes the packages from cargo tree -p <app> (resolved for that package alone; cargo metadata resolved every workspace member's features and counted about twice as many, so an app whose other crates were already built showed 3 / 70), and after a successful build the exact count is kept beside the build output (<binary>.crates) for the next one; fresh crates still leave the total
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 01:35:44 +02:00
Admin
01911e2374
builder: an incremental compile's bar follows what really compiles -- crates Cargo reports as fresh (already up to date) leave the total instead of adding to the count, so the bar no longer jumps to half at once and crawls through the rest
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 01:20:01 +02:00
Admin
ac1917d70c
windows: desktop apps open no console window, and still speak through pipes -- the Builder links apps as windowed programs (/SUBSYSTEM:WINDOWS, mainCRTStartup), so starting one from Explorer or the Builder shows no cmd window; app_main joins the parent terminal's console only when the process has no stdout (started from a terminal), so a pipe (an MCP client starting --mcp) and console builds keep their stdin/stdout untouched
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 00:26:00 +02:00
Admin
6b22295eae
builder: CUDA whenever the machine has NVIDIA -- on Windows with an NVIDIA driver, Install build tools includes the NVIDIA CUDA Toolkit as one more step (its agreement on the same consent screen), an installation that has the tools but not CUDA offers just that step at start, and every build and launch uses CUDA exactly when the driver and the private toolkit are there (cuda::build_with); the CUDA row's on/off switch and the installed-cuda record are gone
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 23:17:24 +02:00
Admin
1530e2818b
builder: the menu opens on the first of YOUR APPS -- the start-up setup's work page left Build tools as the row to return to, so after a first install the cursor sat on Build tools; that is forgotten before the menu opens, while work started from the menu still returns to its row
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 23:11:29 +02:00
Admin
e6e18588c3
builder: wait out Windows security on fresh Rust -- moving the unpacked toolchain into place failed at once when a scanner still held files from the rustc check (Windows refuses to rename a folder with open files), which showed 'still scanning' to a new user; the rename now retries with the same bounded waits as the rustc check, both about 30 seconds in all, with a 'waiting for Windows security' status
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 23:08:00 +02:00
Admin
d02335e27b
builder: no menu flash after log-in -- the log-in screen checked the email through refresh_licenses, which switched to the main menu for its busy line, so the menu showed between typing the email and the setup screens; that check now keeps the log-in page and shows its busy line there
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 22:55:29 +02:00
Admin
706f8f295d
builder: the menu waits for a choice -- after log-in, graphics, agreements and build tools the Builder stops at the menu with the first app selected instead of downloading, compiling and opening Scope by itself
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 19:56:17 +02:00
Admin
addc9e9c7e
builder: a HEAD request is a HEAD -- fetch_method_progress sent every method but POST as GET, so asking the three Rust archives' sizes downloaded all of them (about 180 MB, no progress shown) before the real download started; HEAD now uses the HEAD method and an unknown method is an error. builder.log lines carry the seconds since start
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 19:27:33 +02:00
Admin
dc1b8d193f
builder: no Scope command -- the menu row that put a scope shim on the user PATH (registry on Windows, ~/.local/bin and a shell profile line on Unix) and its repair on every start are gone; the Builder never edits the user PATH or shell profiles
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 19:18:11 +02:00
Admin
9f4c781444
builder: apps get the icon their package declares -- after the workspace's resources/icon.icns or icon_1024.png, the icon comes from icon = "…" under [package.metadata.makepad.desktop] in the package's Cargo.toml (as cargo makepad reads it), so Makepad Amp's exe and macOS bundle carry apps/music/resources/music-icon.png instead of the default
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 19:18:11 +02:00
Admin
f89ef3d4e2
builder: the compile line is the bar and n / total crates -- no crate names flickering past; the Builder's own rebuild (with Scope) counts its crates too, with the same --no-default-features it builds with, and an app's features are passed to the count
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 19:11:55 +02:00
Admin
c490c709cf
builder: Compile shows a real bar -- the crates the build produces are counted beforehand from cargo metadata for this platform (packages reachable through normal and build dependencies, their build scripts, the app's binary) and the bar reads n / total crates; a component's package record ends with its bar, so Compile no longer showed the source download's 2 of 2 as a fixed 50%
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 19:10:42 +02:00
Admin
6b199fddc7
builder: a first build resolves online, the Rust row and bars move when the work does, and the window fits the TUI -- cargo ran with --offline whenever a Cargo.lock existed, so a new private CARGO_HOME could not resolve the Android/OpenHarmony crates in the graph (hilog-sys) and Scope failed to build; Rust becomes the current step with its first package and its manifest downloads with a bar; unpacking source reports the pack import and file checkout with their totals instead of holding the bar at half; the window opens at 664 x 650, the TUI's 80 columns and menu height
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 18:40:46 +02:00
Admin
6d9830e778
builder: long work runs on its own page -- installing build tools, CUDA, an app (download source, compile, open) and Update show a checklist of the steps that actually run, the current one carrying its bar (one forward-only bar over all source packs; compile counts crates), then return to where they started with the result; a failed step shows a red ✗ and its reason with ⏎ back; the Disk action reads clear build data
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 17:57:50 +02:00
Admin
b3159c7d35
builder: a refused email says "Email not recognised" and keeps what was typed for fixing
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 17:48:30 +02:00
Admin
a65be5428d
builder: a refused email opens the editor again with what was typed and says why, and the app section is YOUR APPS -- when the server answers not enabled / unknown, the log-in screen and Account keep the text with a yellow reason line (Return checks again, Esc keeps the previous email); offline or server errors do not; YOUR LICENSES is renamed YOUR APPS in the TUI, the previews and AGENTS.md
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 17:33:08 +02:00
Admin
06ac6e4357
cuda: builds link only the CUDA toolkit they are given, never a system install -- makepad-ai-cuda's build script takes its toolkit from MAKEPAD_CUDA_ROOT alone; CUDA_PATH, CUDA_HOME and the Program Files / /usr/local / /opt scans are gone, because an exe linked against a system toolkit then needs that toolkit's DLLs on PATH wherever it runs (music.exe on a box with CUDA 12.4 installed but not on PATH stopped with "cublasLt64_12.dll was not found"). The Builder passes its private toolkit as MAKEPAD_CUDA_ROOT when CUDA is enabled; the Arch fleet provisioning opts in with MAKEPAD_CUDA_ROOT=/opt/cuda.
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 15:56:53 +02:00
Admin
c052c25da4
builder: the GPU notice is remembered -- choosing I understand writes graphics-notice-read in the install folder, so later starts on Windows and Linux skip it; the Graphics row reopens it and MAKEPAD_GPU_ACK is gone
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 15:21:26 +02:00
Admin
59d4759c6a
builder: one forward-only bar per setup component, green checks on finished setup rows, a black Builder window and a smaller Windows ZIP -- Build tools, Windows SDK, Rust and CUDA each show a bar totalled from the manifests' real byte sizes (download + unpack, cache hits count as done) under a "✓ Build tools ● Windows SDK ○ Rust" line; Account, Graphics, Agreements, Build tools/Rust, Xcode tools/System packages and CUDA show a green ✓ when done; the Agreements screen can agree or disagree (recorded in agreements-accepted, withdrawing never deletes anything); Update reads "check for updates"; builds use --offline instead of --locked (the pinned commits are the lock, a stale Cargo.lock no longer fails a build); macOS bundles are named after the catalog title (Makepad Scope.app, Makepad Amp.app); the Builder window is black; the Windows ZIP leaves out the CJK and colour-emoji fonts the Builder never draws.
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 15:13:46 +02:00
Admin
2389e46094
builder: the terminal scripts delete nothing and read top to bottom, and every Builder delete stays inside its own folder -- bootstrap.sh/check-tools.sh/installer.sh are rewritten as four numbered steps with plain prompts: downloads go to fixed .part names that are renamed into place, Rust components unpack straight into a staging folder (tar --strip-components) that is renamed when verified, the source is checked out in a staging folder the same way, and no rm/rmdir remains; the installer only accepts an empty folder or an earlier Builder folder, never / or the home folder, and the compile shows one counting line with the full log in build.log. In the Rust crate every remaining file delete goes through remove_inside(root, path), which refuses anything not strictly inside a validated install root; gitclone no longer removes a destination on failure, downloads and links are replaced by rename instead of delete-then-write, and clean build is cargo clean --target-dir. tui.rs is regrouped by screen with smaller functions.
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 14:05:49 +02:00
Admin
41fc2e3b0a
builder: the Builder TUI matches the new terminal design, Windows executables carry app icons, and every app has one -- plain full-screen menu (SETUP / YOUR LICENSES / MAKEPAD EXPERIMENTS / CODING AGENTS) with one status line and one progress bar; log in with an email kept in the install folder (downloads are no longer personalized); consent screens list each license agreement (Return opens it) with Agree to all / Cancel; a GPU notice screen on Windows and Linux; optional CUDA for Makepad Amp on NVIDIA GPUs; Apple developer tools screen on macOS; updates save local edits as changes/<app>-<date>.diff for a coding agent to merge back; "clean build" runs cargo clean. libs/win_resource writes Windows icon and version resources without rc.exe from the same icon source as macOS bundles; cargo-makepad uses it. Apps get icon.svg + icon_1024.png (tools/app_icons/render.sh). makepad-mac.sh and makepad-windows-preview.sh are the simulated visual specs.
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 13:48:33 +02:00
Admin
11cd394812
Remove Flow, asset and VJ applications moved into Stage
...
Remove the retired applications, asset-specific libraries and DJ pack tool
from Makepad, together with their workspace and launcher entries. All 981
removed source paths are accounted for in the private Stage repository.
Keep public AI chat generation through the AI Hub's generic job runner.
Extract shared SHA-256 and UDP binding into core_util so the public hub and
model crates no longer depend on the relocated asset libraries. Preserve
the retained public coverage in the split wasm validation script.
Validation on the exact cleanup tree in an isolated checkout:
- Release checks: core_util, model, aichat, WM and Builder.
- Release builds: aichat, WM and Builder.
- Existing tests: core_util 5, model 30, aichat 7, Builder 2 passed.
- Core/model checks: wasm32, Linux and Windows passed.
- No warnings in the successful checks, builds or tests.
Known baseline: WM library tests do not compile because the unchanged
style-transition assertion compares seven expected weights with eight.
The unrelated working-tree correction is intentionally outside this commit.
2026-09-21 23:09:50 +02:00
Admin
dea3de2f4b
The Builder compiles itself again from the Makepad tree Scope's release pins and removes the source snapshots nothing is built from any more
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 00:17:23 +02:00
Kevin Boos
5e9a697940
app_main!: only ship the fonts an app declares ( #1247 )
...
Every manifest `app_main!` emitted carried three fonts no theme role uses:
`NewCMMath-Regular.otf` for `MathView`, and `Inter.ttf` / `RobotoFlex.ttf` for the opt-in
iOS and Android platform styles. That was 3.6 MB in every package, and it only existed
because a font an app forgot to declare failed silently: `FontFamily::update_font_definitions`
skipped a member whose bytes never arrived, so the text showed as boxes with no log line.
* Drop the forced extras. The manifest is now the font set's fallback chain plus whatever
the app puts in `font_assets`, which is what makepad's own apps already did for `Inter`.
* `font_assets` takes expressions, and `INTER_FONT_ASSET` / `ROBOTO_FLEX_FONT_ASSET` join
`MATH_VIEW_FONT_ASSET`, so an app declares a font by name instead of by path.
* A font that never loads now logs one `error!` naming the path and the fix. A missing
member still degrades gracefully: the family keeps its remaining members.
* The apps that use those fonts declare them: the `wm` family binds both platform faces,
`clock`, `weather` and `director` draw with Inter and can select any style, `terminal`
and the builder use Inter for symbols, `splash` and `aichat` use `MathView`.
2026-09-19 20:35:58 +02:00
Admin
6f1e446495
builder: Makepad WM and Makepad Apps are direct launches; Scope comes to the front with --focus
...
The root menu names the two entries Makepad WM and Makepad Apps, in that
order, below Compile and run Scope. Every entry in Makepad Apps now does
what the WM entry already did: set up any missing compiler, download the
sources, compile and open the app, then return to the list with the
selection kept. The nested per-app checklist and its Back entries are
gone, so the menu has one shape. The Builder's runbook follows.
The platform reads --focus since this morning, not MAKEPAD_FOCUS; the
macOS launch of Scope passes the argument.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 14:41:09 +02:00
Admin
384d0e031c
tools: the Builder replaces makepad_loader, the web server moves to makepad/webserver, fleet scripts, docs and the workspace members
...
tools/makepad_builder replaces tools/makepad_loader: one build target
shared across app builds, workspace package selection, checkout
progress on the public Git API, detached built apps with a completion
state, waits for Windows security scans, manual retry after compiler
locks, dedicated-folder installer checks, catalog and runtime fixes.
tools/web_server and its scripts leave for github.com/makepad/webserver.
Arch USB clone/restore scripts, the qwen38 box scripts and the G-belt
serial test join tools/. docs/agents records the agent workflow and the
remote-control handoff protocol; AGENTS.md forbids vendored sources and
bulk imports. Cargo.toml lists apps/wm-dyn, libs/code_language,
libs/search, libs/tar, libs/loader_bundle and tools/makepad_builder,
and drops the two removed crates.
Squashed from work:
- Share Builder target across Makepad app builds
- Fix Builder workspace package selection
- Align Builder checkout progress with public Git API
- Detach built apps and show completion state
- Wait for Windows security scans
- Offer manual retry after Windows compiler locks
- docs: the agent workflow of record and the remote-control handoff protocol
- builder: dedicated-folder installer checks, catalog and runtime fixes; Windows job objects hold c_void handles
- tools: Arch USB clone/restore scripts, the qwen38 box scripts, and the G-belt serial test
- tools: the web server moves to makepad/webserver
- AGENTS.md: no vendored sources or bulk imports in the tree
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 12:17:59 +02:00