feat(seats): memory, the Playwright MCP config, and the seats library
:Memory: MemAvailable and the reserve policy, the sampler of a pass's peak tree PSS (one sweep, a pause of three sweeps at least, stopped with the driver), and the calibration file every driver on the machine shares, re-read and written under its lock. :Mcp: the pinned @playwright/mcp 0.0.83 arguments and the --mcp-config of one pass, compact and in a fixed key order. :Seats: the dotenv loader (token lines only, TOKEN7 inert), the one-word probe (run under the supervisor, a missing binary reported with its errno text), the window maths, the ranking, the Fable merge, the editor-bundle lookup of the claude binary, the redaction of anything token-shaped, and the report. This libc++ has no tzdb, so a zone by name converts through the C library with TZ set, reading the system's zoneinfo. tests/Seats: 92 checks against reference vectors, numbered in order, all green. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
e8a58f893f
commit
8ffbd6cf5d
9 changed files with 1764 additions and 3 deletions
34
interfaces/Crafter.Review-Mcp.cppm
Normal file
34
interfaces/Crafter.Review-Mcp.cppm
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
// SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
||||
|
||||
export module Crafter.Review:Mcp;
|
||||
import std;
|
||||
import :Json;
|
||||
|
||||
// The Playwright MCP server a lens with the browser environment drives the
|
||||
// application with (2026-10-15): one server per pass, launched by the CLI
|
||||
// from --mcp-config (never from the lens's Bash), headless, an in-memory
|
||||
// profile, its screenshots under the pass's own output dir in the scratch
|
||||
// tree. The tools are allowlisted by name (:Tools); browser_run_code_unsafe
|
||||
// runs arbitrary Node code in the server's process and is denied.
|
||||
export namespace Crafter::Review::Mcp {
|
||||
// @playwright/mcp, verified 2026-10-15 with CLI 2.1.300.
|
||||
constexpr std::string_view PlaywrightMcpVersion = "0.0.83";
|
||||
// The Chromium build that version's Playwright drives, as `npx playwright
|
||||
// install chromium` puts it under ~/.cache/ms-playwright: what
|
||||
// `crafter-review browser install` provides.
|
||||
constexpr std::string_view ChromiumRevision = "1247";
|
||||
// --browser chromium: Playwright's own Chromium; without it the server
|
||||
// wants the `chrome` channel, Google Chrome at /opt/google/chrome
|
||||
// (2026-10-15: every navigate of the second firing run failed on it).
|
||||
std::vector<std::string> DefaultArgs();
|
||||
|
||||
// The --mcp-config value for one pass: the consumer's command and args (the
|
||||
// pipeline's pinned default when the config names none) plus this pass's
|
||||
// output dir.
|
||||
Json PlaywrightConfig(const Json& functional, const std::string& outputDir);
|
||||
// The config as compact JSON (DumpCompact), keys in their order.
|
||||
std::string ConfigJson(const Json& config);
|
||||
// <scratch>/playwright/<label with / and spaces as _>, made.
|
||||
std::filesystem::path OutputDir(const std::filesystem::path& scratch, std::string_view label);
|
||||
}
|
||||
Loading…
Reference in a new issue