Commit graph

13 commits

Author SHA1 Message Date
091712f55a Merge upstream origin/dev c86415ef6 (30 commits) into nigig fork - preserve work content, game crates, nigig protocol, widgets layout 2026-09-27 01:53:53 +03:00
Admin
c86415ef67 map_build: the repacker builds on Windows again -- repack and repack_remote read and wrote at offsets through Unix's FileExt, so makepad-map-build stopped compiling for Windows (the CI's workspace row, red since 6c5c71f92). A ReadExactAt shim gives read_exact_at and write_all_at on every platform: Unix's FileExt, and on Windows the same from seek_read/seek_write; repack_remote is built wherever repack is. Checked: cargo check of makepad-map-tiles' bins for the host and x86_64-pc-windows-gnu, the repack lib tests
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 00:17:25 +02:00
Admin
6c5c71f92e maps: tiles ship only what the renderer draws, and a frame draws only what is on screen -- one detail contract in mbtile_reader::map_tags (detail_feature_used, micro_icon, the tag allowlist) is shared by the renderer (MvtSink::wants_feature skips rejected osm_* features in the detail pass before any id is allocated), the base bake (non --full drops them and stamps makepad_detail_contract=features-v1) and the repacker (a DATA_POLICY row; the verifier accepts exactly the contract's drops): address-only nodes (85% of detail points), plain road/building lines duplicated by the base and polygon layers, and relation points go; icons, trees, bridge corridors, platforms and detail buildings stay. Hosted city tiles shrink ~24% (Amsterdam z14 608 -> 465 KB). makepad-map-render-check builds each tile from the original and the rewrite at buckets 14-18 in 2D and 3D and requires identical buffers (bitwise digest, NaN-safe) and equal baked-face hits: ~3000 builds over local and hosted world tiles, 0 mismatches. Found on the way: base, detail and overlay polygon ids all started at 1 and the fill pass groups rings by id, so unrelated polygons of one colour fused; they now use disjoint ranges. makepad-map-repack --in-place converts an archive over itself shard by shard (cross-shard blobs stashed first, each partial verified tile by tile against the still-present original, journaled, renamed; root last; resumable), and --remote user@host:/dir runs it from this machine over parallel ssh streams against a sparse local mirror with SHA-256 checks. GPU/memory: only visible tiles are drawn (the prefetch ring, a whole z14 tile wide past z14, was drawn every frame), building outlines, flat-road fringes and roof edges move to the compact 28/16-byte formats, the shadow pass skips unlifted road chunks and off-screen terrain cells are skipped; z16 flat 6.3 -> 3.8 ms GPU, 123 -> 36 draws, 151 -> 94 MB resident; z17.5 7.3 -> 3.6 ms, 158 -> 26 MB; max tilt 5.5 -> 2.8 ms; pixels unchanged. New traces gpu.shaders, map.streams, map.frame
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 23:41:52 +02:00
Admin
f6a99a2721 libs: the AI stack, flowgraph, git, audio_route, win_resource and the other libraries; Flow, the asset library and VJ move to Stage
Library changes outside the platform's own dependencies (those came with the platform commits above). libs/asset and libs/flow move to the Stage repository with the apps that use them.

Covers work 6f1e44649..2b1a41df4 for libs:

- wm: the Android super-app compiles tiles on the phone against the host engine
- cargo-makepad: the super-app APK is packed by `android dyn-pack`, in Rust
- cef: a page's audio can be captured instead of played
- flow: the flow-ui app and the flowgraph canvas return to the workspace, with staged progress in libs/flow
- svg: a stroke that bends tighter than its half width collapses its inner edge to the corner
- the accent a name is written with stops deciding whether search finds it
- ai stems: LaneDemixer, VocalsModel and the platform Stage origin/main needs
- The regex engine accepts \b and \B, reports the earliest match so a scan can resume after it, and can decide word boundaries on ASCII so a code sear
- workspace: Scope's settings carry the code map's tab width and the directories each prepared project hides from its map
- cef, video, platform: what Stage's browser needs from the shared layers
- platform, wm: work builds again on iOS, tvOS and wasm, and the window manager is warning-free on Windows
- ci: tools/ci, a Splash runtime that watches a branch and runs every ci.splash it finds
- stitch: the crate says what the rest of the repository says about its license
- ci: a run is one target dir and one cargo batch per target, and the wall draws
- apps: what the CI box found
- Remove Flow, asset and VJ applications moved into Stage
- tests: the workspace suite, run as a whole for the first time, passes outside the example UI tests
- libs: no warnings in the workspace check on any row
- tests: the last three failures of the CI box's night
- gif: the crate's doc examples compile
- cef: a hosted browser survives its host's exit
- tests: the three binaries over ten seconds in release come under it
- git: the memory ledger can take what it is asked for
- script: re-entrant dispatch, thread index validation, Any-based handle downcasts, UTF-8 previews; regex: never_loop fix
- fix(text): enable ttf-parser gvar-alloc for many-tuple variable fonts
- platform, widgets, wm: a touch that is taken away is cancelled, never released
- platform, wm: hosted apps ask the WM for what they cannot do themselves
- wm on Android: apps build on the phone
- task, cargo-makepad, widgets, audio: the task manager chooses its columns, graphs every process' network and disk traffic and installs itself as a D
- flowgraph: ordered ports take many wires, sockets can override their icon, and the canvas embeds as a viewport
- cef: captured frames and audio carry callback clocks and a navigation epoch
- git: timings read a portable clock
- ai: the hub's rig-fixture tests find the asset library without the asset client
- ai llm: a Metal main buffer is filled in 32 MB chunks
- diskmap: a scan lists each macOS directory in one getattrlistbulk call and classifies files without allocating or locking
- platform, widgets, audio_route, ai: window crossfades and whole-frame presents, caption controls that click, themed menus, a stereo-pair audio tap,
- builder: the Builder TUI matches the new terminal design, Windows executables carry app icons, and every app has one
- sheets, score, git, home: saves cannot cut a file short or overwrite another one, and checkouts cannot write outside the repository
- git: worktree status matches git on real repositories and can be cancelled
- cuda: builds link only the CUDA toolkit they are given, never a system install
- audio_route: one API on macOS, Windows and Linux, monitoring by default and processing only when asked, plus shaders that discard a value compile to
- platform, widgets, ai: a restyle recompiles nothing it already has, shows only complete frames, and a window can own its caption
- audio_route example: print the samples that reached the processor each second
- widgets, builder: the big widget families are features, all on by default, and the Builder takes none of them
- ai hub: a local chat with no model says so once, plainly
- ai: Claude Desktop drives any app with the F10 panel
- wm: children open no console windows on Windows
- ai: Connect hands the .mcpb to Claude Desktop itself
- civil-time: one local wall clock for every app, and it knows the zone on Windows
- ai-speech: makepad-ai-sfx (and with it ai-h3) is built only for IndexTTS
- script + wasm_bridge: no build script that reruns on every file
- build: the AI stack, csg, Scope and Source Library join the one workspace
- ai chat: the chat's backends are the CLI, MCP and cloud providers; the local model is the `localai` feature
- widgets: every widget family is a crate of its own under widgets/families, and makepad-widgets links, re-exports and registers the ones its features
- apps, examples, libs: each crate builds only the widget families it uses, and the design overlay is each app's own default feature
- livepipe: takes makepad-widgets without its default families, now that the AI stack is in the one workspace
- ai chat: a build without local AI starts on the first provider that answers here, not on "No model"
- thiserror: RUSTC_BOOTSTRAP no longer turns on the unstable generic member access API
- builder: makepad-builder.exe declares itself like a well-formed Windows program and stops a stalled build through a job object instead of taskkill
- builder + ai-cuda: the CUDA kernel progress shows in the Builder's Compile row, not scribbled over its screen
- repo: no third-party comic archive, generated models or sample asset in the tree
- builder: the Windows Builder ships as source, runs in its own console, and apps compile with Rust's GNU toolchain or Microsoft's
- win_resource: PNG decode and encode on makepad-fast-inflate instead of zune-png
- builder: one folder layout everywhere, makepad-builder.zip with only the files a Windows build reads, a Rust download over parallel connections, and

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 20:10:57 +02:00
99ca24dbbc Merge upstream origin/work 5f99533 into nigig fork alongside dev 2026-09-25 17:32:26 +03:00
a0f46b7d83 Merge upstream origin/dev fda40f56 into nigig fork - preserve nigig hub/web_server, take upstream dev updates 2026-09-25 17:25:35 +03:00
Admin
41079817ba apps: what the CI box found -- the workspace test suite compiles again (the window manager's style tween test states that Windows 2000 carries the whole weight by its own index instead of a seven-entry literal for eight styles, and the landscape test expects the 28-point home strip minimum the shell has kept since the device chrome got it); route builds for the web, with map_build's faces, native, testmap and repack modules, route's bake provisioner and its local navigation and charger queries gated off wasm, where they answer that local data is unavailable on the web; and the warnings that only showed on other targets are gone by gating each item with its users: files' symlink target, photos' Lane, sheets' module import, storybook's filesystem tree helper, task's swap fields on Windows and iOS, and three test-only leftovers in widgets
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 22:44:50 +02:00
Admin
b4f4eb1abd libs: geodata, map_build, mbtile_reader, map_nav
Squash of 7 work commits (Sep 1–12):
  f7093bf  map_nav: the search db's positioned read builds on Windows
  3c03397  geodata: a data library keeps its own clock — the GUI platform is not a dependency
  64d2d3a  map-build: an unfinished bake resumes or restarts itself, and the maps root does not depend on the cwd
  cb572ae  map-tiles: makepad-map-repack rewrites an archive to what the renderer reads
  30fc13b  map-tiles: repack runs on all cores, resumes per shard, reports --status
  2db9d48  mkmap: a root record may decode to 512 MiB — the densest world shards list over five million tiles
  e8be900  deps: drop osmpbf and serde_json from the root workspace

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 13:40:32 +02:00
Admin
30fc13bba0 map-tiles: repack runs on all cores, resumes per shard, reports --status
Mac-side only: no in-place rewrite, no push, no fallback source. Shards are
written atomically and skipped on resume; root.mkidx lands once at the end.
Ranged --verify streams the output back. 16 jobs: 4.2 tiles/s on the
500-tile sample (REPACK2b lane).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 22:02:33 +02:00
Admin
cb572aee0f map-tiles: makepad-map-repack rewrites an archive to what the renderer reads
A new binary in tools/map_tiles streams an .mkmap shard by shard into a
new archive: every tile's protobuf is decoded, the osm_* tag tables are
rewritten to the reader's key whitelist, the field-101 shadow sections are
stubbed (regions and building groups stay byte-identical), field 100 is
kept, and the tile is re-brotli'd with the archive's own codec and
dictionary; leaf directories and root.mkidx are rebuilt, output is
deterministic and resumable per shard with a sidecar manifest, --tiles
limits a run to a Hilbert range or a z/x/y list, --dry-run reports and
--verify decodes both archives and checks the policy. On the 25 Amsterdam
start-view tiles: 95.1 -> 47.6 MB decoded, 30.6 -> 16.7 MB compressed.
A label sort tie-break makes the bake byte-deterministic for the parity
test.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 22:02:33 +02:00
Admin
64d2d3acee map-build: an unfinished bake resumes or restarts itself, and the maps root does not depend on the cwd
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WV6BzHQiJEvvK9EPc1d4ks
2026-09-02 19:25:33 +02:00
Admin
04a36ded31 map-build: the bake produces only what the renderer reads; a bad tile is skipped and logged
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WV6BzHQiJEvvK9EPc1d4ks
2026-09-02 19:05:11 +02:00
Admin
c460905e2a maps + route: the self-baking Amsterdam test map, reversible mkmap weave, the rtsmap generator, road faces, guarded first-run
Squashed from work:
- rtsmap: one seeded generator for tiled strategy maps
- map: bake a runnable Amsterdam test map from inside the route app
- route: the first-run test map starts itself, and its buttons are guarded
- map: the test map bakes its road faces too, from the same shared pass
- map_tiles: mkmap-extract — the weave is reversible, world-cells reconstructible from world.mkmap
- route: the local dispatcher rides the hub — its copied engine is deleted, limits preserved (aicore P1)
- route + converse: off makepad_ai — the Agent seam moves to converse, route's cloud dispatcher rides the hub's Claude p
- ai-hub: chats run the machine election — route to a serving holder, wait on a loading one, claim and publish when open
- libs: the zero-warning sweep — stitch casts say what they mean, xatlas keeps upstream's surface quietly
2026-09-01 16:46:33 +02:00