Project Ambrose work board

What is being built right now, and what is ready to start. Every milestone is open to anyone, in any order, and nobody needs to ask. This page is generated from the roadmap itself and the open pull requests, so it says what is true rather than what was true.

Game server: 47.4% built
136 of 287 milestones · 1086 of 1807 acceptance checks
Panel: 13.4% built
25 of 186 milestones · 202 of 1113 acceptance checks
20 ready to start · 25 being built · 94 contributor items merged

Take one

Everything here has all its dependencies built and nobody has a pull request open for it yet. Branch from upstream/main, name the branch as shown, and open a draft pull request on the first day, which is how everyone sees you are building it. A milestone still waiting on a dependency can be taken too, building what it rests on, and state.json lists every one.

8.11 Decks (WIZ-14)

size M · 6 checks to earn · unlocks 2

git switch -c milestone/8.11-<short-name>

Claim it or open a draft pull request from that branch.

10.07 LootMgr core (QST-19 + CMB-20 merged)

size M · 2 checks to earn · unlocks 4

git switch -c milestone/10.07-<short-name>

Claim it or open a draft pull request from that branch.

10.10 Gold vendors (EXT-1 + QST-20 + WIZ-24 gold)

size M · 14 checks to earn · unlocks 7

git switch -c milestone/10.10-<short-name>

Claim it or open a draft pull request from that branch.

10.19 Path actions (WLD-17 part 2)

size M · 2 checks to earn

Started by the maintainer's game systems session. Landed on 2026-10-13 with 3 of 4 checks: walkers run the path actions their templates key to their nodes, and `client template --holding` finds the templates that carry a class. Left: the real-client check, a walker such as KT-Shopkepper-Ambient-Walker playing its emote at its node and walking on, seen the same on two clients

git switch -c milestone/10.19-<short-name>

Claim it or open a draft pull request from that branch.

12.06 Privacy, friendly player, teleport to friend (WIZ-20)

size M · 4 checks to earn · unlocks 1

git switch -c milestone/12.06-<short-name>

Claim it or open a draft pull request from that branch.

12.13 Equipment sets (WIZ-26 part)

size M · 4 checks to earn

git switch -c milestone/12.13-<short-name>

Claim it or open a draft pull request from that branch.

12.14 Custom emotes and pet rename (WIZ-26 part)

size M · 3 checks to earn

Started by Kokoita. Landed on 2026-10-06 with no check yet: the purchased emote and teleport-effect masks are saved with the character and sent in MSG_UPDATECUSTOMEMOTES, the custom-emote catalog is read from ObjectData/Emotes, and both radial emote messages are shown only for an animation the wizard owns and the install lists. Left: the wheel's pages, whose slots name emote items the wizard holds and so wait on 8.08's item instances; the line checked against the emote; handler tests that fail when the ownership check is removed; and the real-client check

git switch -c milestone/12.14-<short-name>

Claim it or open a draft pull request from that branch.

12.17 Public instances by capacity (WLD-22 part 1)

size M · 6 checks to earn · unlocks 2

git switch -c milestone/12.17-<short-name>

Claim it or open a draft pull request from that branch.

13.06 Reagents and recipes (EXT-14)

size M · 5 checks to earn · unlocks 1

git switch -c milestone/13.06-<short-name>

Claim it or open a draft pull request from that branch.

16.04 patchserver TCP service 8 (PAT-6)

size M · 1 check to earn · unlocks 2

Started by the maintainer's server session. Landed on 2026-10-10 with 4 of 5 checks: the patch server answers MSG_LATEST_FILE_LIST_V2 and v1 with the size, client CRC and time of the LatestFileList.bin under Patch.OutputDir and a list URL naming its revision folder, a probe that never accepts the session is answered, a bad manifest on reload keeps the old one serving, and a port change rebinds live. Left: the reply for an unsupported locale, which waits on 16.06's client test

git switch -c milestone/16.04-<short-name>

Claim it or open a draft pull request from that branch.

16.05 HTTP file service with Range (PAT-7)

size M · 10 checks to earn · unlocks 2

git switch -c milestone/16.05-<short-name>

Claim it or open a draft pull request from that branch.

16.12 Type dump v2 emission and validator (OBJ-20 part 2)

size M · 3 checks to earn

git switch -c milestone/16.12-<short-name>

Claim it or open a draft pull request from that branch.

17.01 Server console: colored logs and a command prompt

size S · 1 check to earn · unlocks 3

Started by the maintainer's server session, then Kokoita. Landed on 2026-10-09 with four of five checks, #122 adding what the last check's run records. Left: the Dev-gated check, one unredirected console on Windows and one on Linux each showing an `ERROR` line red and a `WARN` line yellow, and nothing else left to build

git switch -c milestone/17.01-<short-name>

Claim it or open a draft pull request from that branch.

17.18 File roots, the path jail and browsing

size L · 1 check to earn · unlocks 10

Started by the maintainer's panel session. Landed on 2026-09-27 with seven of eight checks. Left: check 2's share path, which 17.39 adds; its download path is refused for the client and data roots since 17.54 (#118)

git switch -c milestone/17.18-<short-name>

Claim it or open a draft pull request from that branch.

17.23 Operating system services, Docker image and Pterodactyl egg

size M · 3 checks to earn · unlocks 5

Started by MeruneFleuruwu. Landed on 2026-09-25 with the Compose and time zone checks earned, after review added the type extractor and the SQL to the image and the egg, Python to their build, a health check that probes the login port and a .dockerignore. Left: the three Dev-gated checks, a reboot after `--install-service` on Windows and on Linux and the two Pterodactyl ones, which the maintainer runs on their own machines

git switch -c milestone/17.23-<short-name>

Claim it or open a draft pull request from that branch.

17.62 Player account registration and password recovery

size M · 6 checks to earn · unlocks 1

Started by Kokoita. Landed on 2026-10-13 with 1 of 7 checks: the registration, verification and reset routes answer 404 until `Panel.Registration.Enable`; tokens are hashed, single-use and expiring; mail is capped per address per day; `Login.RequireVerifiedEmail` gates sign-in; a reset relays a kick to running gameservers; and an operator registrations page is behind `accounts.read` and `accounts.registration`. Left: tests for the identical answer for unknown and known emails, the reset token's single use and expiry with `account_session` deleted and the live session kicked, ten registrations a minute throttled and then a captcha, a game account at level 0 with no panel user, the registrations page's audited resend and block with 403 for `accounts.read` alone, and the Dev-gated retail sign-in

git switch -c milestone/17.62-<short-name>

Claim it or open a draft pull request from that branch.

17.64 Installation maintenance mode

size M · 1 check to earn · unlocks 2

Started by Rayoray12. 4 of 5 checks. The panel's audited banner, enter and leave control and `/api/panel/maintenance` routes keep who, why, when and the window in the panel store, and MSG_USER_VALIDATE is refused below the bypass level. Left: publishing the window on 17.70's page (#185 is open for it), the 17.15 schedule task that enters and leaves maintenance, and the Dev-gated check that the retail client shows the maintenance reason

git switch -c milestone/17.64-<short-name>

Claim it or open a draft pull request from that branch.

17.91 Tick breakdown and on-demand profiles

size M · 2 checks to earn · unlocks 1

Started by MeruneFleuruwu. Landed on 2026-09-29 with checks 1, 3 and 5 earned, after review timed 6.01's movement relay as its own subsystem. Left: a benchmark showing the accumulators cost nothing measurable while no profile runs (check 2), and a tick alert naming the subsystem (check 4), which waits for 17.67's alert rules

git switch -c milestone/17.91-<short-name>

Claim it or open a draft pull request from that branch.

17.178 Client driver runs from the panel, opt-in

size M · 6 checks to earn

git switch -c milestone/17.178-<short-name>

Claim it or open a draft pull request from that branch.

17.179 One desktop shell for the launcher and the panel program

size L · 2 checks to earn · unlocks 1

Started by the maintainer's panel session. Two of its window checks reopened on 2026-09-30: the page loads but was not shown to render, and a page is done only when it shows real content

git switch -c milestone/17.179-<short-name>

Claim it or open a draft pull request from that branch.

Next in line

Each of these is the last thing standing between the project and several more milestones. If one you could build is on this list, it is the highest-value evening available.

Being built right now

Open pull requests and claims, with who has each. You may still work on one of these: say so on its pull request first, so the two combine rather than collide. A claim with no push for 14 days drops off this list by itself.

The other track

Work that is not a milestone: findings about the game, tools, schemas, fixtures, guides and proposals, in folders no milestone touches. Nothing there is reserved, so two people may take the same item and both are read. 94 merged so far, 56 items open, listed in the contributor track.

The phases

Seventeen phases, listed in the order they build on each other. Every milestone in every phase is open to anyone.

For your AI

Give your assistant the milestone prompt, then have it read state.json on this page before it plans anything. That file carries every milestone with its status, what it needs, what it unlocks and who is building it.

  1. This file is the live state of the project. Read it before starting anything, and read it again before you push.
  2. Every milestone is open to anyone, the maintainer's own sessions and outside contributors alike, in any phase and any order, and nobody needs anyone's permission to take one. Nothing is held or reserved.
  3. Status 'open' means every dependency is built. 'waiting' means one is not: it can still be taken, by building what it rests on in the same pull request or by taking that dependency first. 'building' means somebody has an open pull request or claim for it, listed under claims: you may still work on it, but say so on their pull request first, so the two combine rather than collide.
  4. Start one by opening a draft pull request from a branch named milestone/<id>-<short-name>, which is also what lets CI accept a change under src/. The board picks that up by itself, and a pull request from any other branch counts too when its title starts with the milestone's id.
  5. A milestone is finished only when every acceptance check in its phase file is ticked with the evidence that proved it. A check you cannot run stays unticked and is named in the pull request.
  6. A milestone carrying next_after is waiting on exactly that one milestone, the quickest way to free it. One carrying started already has work landed, and says what is left.
  7. The prompt for your own assistant is at https://github.com/Justchicoo/Project-Ambrose/blob/main/contrib/AI-MILESTONES-HERE.md, and the rules it is held to are at https://github.com/Justchicoo/Project-Ambrose/blob/main/doc/MILESTONE-TRACK.md.