exploratory monorepo playground https://muchq.com
  • Java 35.5%
  • Go 23.7%
  • C++ 21.3%
  • Rust 9.3%
  • Starlark 3.4%
  • Other 6.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Andy Aylward 1ec86df909
wordchains: make the all-paths cap an actual bound (#1346)
MAX_ALL_PATHS_RESULTS was checked after the target push and only ever
stopped further descent, never a push. A frame entered while there was
still room walked its neighbours regardless, and stepping into the target
pushed unconditionally — so every frame already past its own check could
add one more path once the bound had been reached, and find_all_paths
could return more than 1000 paths.

Moving the check above the target branch applies it to every path into
result. //domains/games/apis/mithril depends on this, so the unbounded
return was reachable from a service rather than confined to a library.

The existing dense-graph test asserts the right property but caught this
about 2 runs in 25, because build_graph iterates HashMaps and Rust seeds
their order randomly per process — so traversal order, and with it whether
the overshoot happens at all, changed run to run. That reads as a flaky
test rather than as the bug report it was, and CI reddening a few percent
of the time on unrelated PRs teaches people to re-run instead of read.

The new test builds the graph directly instead of through build_graph.
dfs_all_paths walks edges[u], which is a Vec, and the HashMaps it consults
are only ever read by key — so with the adjacency lists written out the
traversal is deterministic. target is the last neighbour of every a node,
so each a frame generates its paths through the b layer first and only
then steps to target, which is the ordering the overshoot needs. 1240
paths exist within the depth limit, so the walk always crosses 1000.

Measured, rather than assumed:

  before the fix   25 / 25 runs fail, always at exactly 1001 paths
  after the fix    40 / 40 runs pass, and the old flake is gone with it

It also asserts the count equals the cap, not merely that it is under it —
otherwise a change that gave up early would pass a test named for a bound.

Closes #1339.


Claude-Session: https://claude.ai/code/session_01DkfJ6xogDgkD7wqLc2pkBr

Co-authored-by: Claude <noreply@anthropic.com>
2026-08-10 03:13:46 +00:00
.github Java services get custom metrics; 1d4 reports indexing and motifs; Host page gets its Disk panels back (#1212) (#1285) 2026-08-02 09:38:07 -04:00
.vscode fix #224 add escapist tests + cpp client (#230) 2024-07-27 10:01:20 -04:00
bazel NullAway on by default, with legacy opt-outs (#1338) 2026-08-09 19:51:45 -04:00
deploy Report an unusable one_d4 base URL per call instead of at startup (#1342) 2026-08-10 02:26:50 +00:00
docs working agreement: panel read-only is enforced structurally, not by instruction (#1298) 2026-08-04 17:33:01 -04:00
domains wordchains: make the all-paths cap an actual bound (#1346) 2026-08-10 03:13:46 +00:00
scripts #1285 re-review follow-ups, then #1287: microsecond histogram buckets across all three rails, cache-hit scene complexity, and a count/rate toggle (#1288) 2026-08-02 18:36:43 +00:00
.bazelignore Update Bazel dependencies and enhance futility library docs (#944) 2026-01-17 17:08:28 -05:00
.bazelrc Run the C++ suites under ASan, UBSan and TSan, and fix the first two things they found (#1275) 2026-07-31 20:50:11 -04:00
.bazelversion build(deps): batch Renovate dashboard updates across all ecosystems (#1166) 2026-07-04 22:34:06 +00:00
.clang-format 🧹 clang-format (#56) 2023-06-23 23:48:02 -04:00
.gitignore portrait: make the error space real; unblock the sandbox build (#1270) 2026-07-31 11:56:20 -04:00
.scalafmt.conf fix(deps): update all dependencies (#1025) 2026-02-21 17:36:31 +00:00
BUILD.bazel Java services get custom metrics; 1d4 reports indexing and motifs; Host page gets its Disk panels back (#1212) (#1285) 2026-08-02 09:38:07 -04:00
Cargo.lock metrics: sweep the zero baseline across both rails, and cover distributions (#1323) (#1324) 2026-08-07 16:12:10 -04:00
Cargo.toml Remove the Rust proto-codegen (prost/tonic) stack (#1316) 2026-08-06 22:52:38 -04:00
CLAUDE.md NullAway on by default, with legacy opt-outs (#1338) 2026-08-09 19:51:45 -04:00
clippy.toml [build_pal] setup stubs for core, cli, server, and web (#913) 2025-10-27 10:46:33 +00:00
go.mod Update module google.golang.org/grpc to v1.82.1 [SECURITY] (#1188) 2026-07-22 22:58:34 -04:00
go.sum Update module google.golang.org/grpc to v1.82.1 [SECURITY] (#1188) 2026-07-22 22:58:34 -04:00
LICENSE [wow] domainification + nullaway (#959) 2026-02-07 13:49:53 +00:00
maven_install.json mcpserver: replace the hand-rolled JSON-RPC transport with micronaut-mcp, and move the monorepo to Micronaut 5 (#1325) (#1330) 2026-08-09 10:42:25 -04:00
MODULE.bazel Add smithy-cpp integration spike (portrait rewrite phase 0) (#1169) 2026-07-16 16:42:16 +01:00
MODULE.bazel.lock Report an unusable one_d4 base URL per call instead of at startup (#1342) 2026-08-10 02:26:50 +00:00
README.md 1d4: show whether a request's data survived retention, fix the mobile layout, add a working agreement (#1265) 2026-07-31 00:41:10 -04:00
renovate.json Batch Renovate updates (#996) 2026-02-14 16:17:35 -05:00
rustfmt.toml [build_pal] setup stubs for core, cli, server, and web (#913) 2025-10-27 10:46:33 +00:00

MoonBase

Test and Publish

a polyglot playground for experiments in application architecture, API design, library ergonomics, and developer tooling.

Deployed Projects

Project URL Description
muchq muchq.com Project landing page
r3dr r3dr.net Another URL shortener
1d4 1d4.net Chess game indexer web UI
1d4.net MCP mcp.1d4.net MCP server for chess tools
microgpt tty1.uk Minimal GPT implementation

Repository Structure

The repository is organized into domains, each containing its own libraries, APIs, and applications.

  • 🎨 Graphics: Ray tracers, image processing, and rendering tools.
  • 🎮 Games: Game engines, chess tools, and multiplayer backends.
  • 🌐 Platform: Core infrastructure, gRPC/HTTP wrappers, and utilities.
  • 🔗 r3dr: URL shortening ecosystem.
  • 💬 Chat: Real-time communication services.
  • 🤖 AI: Neural network and machine learning experiments.
  • 🏆 Leet: Algorithmic solutions and C utility libraries.

Getting Started

  • Build & IDE Instructions: How to build the project and set up your development environment.
  • Importing Projects: Guidelines for adding new projects to MoonBase.
  • Working Agreement: How work gets picked up, reviewed, verified, and shipped — the review panel, the testing bar, and what CI does and doesn't gate.
  • Testing Notes: Checking that tests can actually fail, and the traps that only show up in CI or on another platform.

MoonBase