feat(server): publish the initial Pudu MCP server package #2
merged
@chrismichaelps wrote on 2026-09-24
Behaviour
A stdio Model Context Protocol server written in Pudu, packaged as @chrismichaelps/pudu-lang-mcp 0.1.0. It serves the Pudu documentation, the installed standard library's API reference, and the compiler's check, format, lint, confined run, test, and language-server answers across nineteen tools, plus resources, four prompts, and argument completion.
pudu.tomlcarries every key of the canonical library manifest: name, version, description, Apache-2.0 license, keywords, the>=0.1.1 <0.2.0language range,srcas source, andPuduLangMcpas module root.- The end-to-end suite reads replies through
List.get. A server that writes fewer lines than expected, for example one started by an older compiler, now fails each check by name instead of stopping the suite on an out-of-range index. - A bounded child process no longer waits on its output readers without limit. On Linux,
sh -c "sleep 5"stopped at its 200 ms deadline leftsleepholding the pipes, and the call took 5 s. Readers now publish what they hold, and once the child ends they get 250 ms to reach end of stream. A stream still open after that returns what was read and is marked cut. - The wiki vault mirrors every source file, and the changelog, testing page, and handoff are updated.
Verification (Pudu 0.1.1)
pudu check $(find src test tools -name '*.pudu'): no diagnostics.pudu fmt --check src test toolsandpudu lint src test tools: clean.pudu test test: 20/20 suites, 464 assertions.pudu build src/Main.pudu: 60 modules linked.- With a 0.1.0 compiler first on
PATH, the end-to-end suite reports 14 named failures and no longer stops on an index. With no compiler, its checks are skipped. - Mutation on
Bounded.puduafter the fix: 28 of 29 killed. The survivor flips a fallback for an unreadableSynccell, which no test can reach; the reason is in its Grill Log, and it is not in CI's sample. - Mutation: the six modules with survivors from the earlier full pass killed 49 of 49 valid mutants. CI runs the deterministic sample at a 100% threshold.
Closes #1
