SP42 is a Rust-first Wikipedia patrolling workbench. It combines shared patrol logic, a browser shell, a CLI, a desktop shell, and a localhost bridge so the same review flow can be exercised across targets while the project moves toward live Wikimedia verification.
SP42 is currently alpha software. The repository is public and buildable, but it is not yet a production-ready moderation tool.
- A shared core for patrol queueing, diffing, scoring, context building, and MediaWiki action preparation
- A browser shell for patrol review, diagnostics, and local single-user Wikimedia testing
- A CLI and desktop shell that reuse the same core contracts
- A localhost server for coordination, debug surfaces, and the local development auth bridge
- Local and offline development is substantially implemented
- Single-user local Wikimedia token testing is supported through a localhost bridge
- Live Wikimedia integration is still the main remaining external milestone
- Multi-user production auth is not implemented yet
Phase summary:
Phase 1: offline patrol core and queueing, effectively complete for local/offline developmentPhase 2: coordination and shared room state, effectively complete for local developmentPhase 3: browser, CLI, and desktop shells with shared reports, shared shell-state, telemetry, and the interactive patrol rail, effectively complete for local developmentPhase 4: live Wikimedia integration, pending real credentials and external verificationPhase 5: PWA/offline packaging and installability, effectively complete for local development
Detailed status lives in docs/STATUS.md.
crates/sp42-core: shared contracts, scoring, runtime primitives, and action helperscrates/sp42-wiki: wiki config parsing, registry/default selection, and capability profilescrates/sp42-app: browser and PWA shellcrates/sp42-cli: CLI shellcrates/sp42-desktop: desktop shellcrates/sp42-server: localhost coordination and auth bridge serverconfigs/: per-wiki configurationschemas/: config schemasfixtures/: test fixturesdocs/: status, ADRs, and design documents
- Rust
1.92or newer - The
wasm32-unknown-unknowntarget for browser builds
Optional:
trunkfor serving the browser app during developmentsccachefor faster repeated local Rust builds- A local Wikimedia testing token in
.env.wikimedia.localfor the single-user auth bridge
./scripts/build-local.shBuilds are incremental by default. Pass --clean to any build entrypoint when
you want to purge generated artifacts, including target/, before building.
For a deployable web release build:
./scripts/build-web-release.shFor CI-shaped builds with deterministic caching:
./scripts/ci-all.shFor focused local checks during iteration:
./scripts/check-focused.shcargo run -p sp42-serverUseful local endpoints:
http://127.0.0.1:8788/healthzhttp://127.0.0.1:8788/debug/summaryhttp://127.0.0.1:8788/dev/auth/bootstrap/status
cargo run -p sp42-clirustup target add wasm32-unknown-unknown
./scripts/build-frontend.shTo generate Cargo timings reports:
./scripts/build-timings.shFor live local development with the server and Trunk proxy running together:
./scripts/dev-local.sh
./scripts/dev-local.sh --smokeThe dev command runs sp42-server on 127.0.0.1:8788 and Trunk on
127.0.0.1:4173.
For runtime settings, local credentials, and API base URL behavior, see
docs/RUNTIME_CONFIGURATION.md. For desktop app
packaging, see docs/DESKTOP_DISTRIBUTION.md.
For a Wikimedia Cloud VPS artifact, run ./scripts/package-vps.sh; the
generated package includes its own deployment README.
./scripts/build-local.sh
./scripts/build-local.sh --clean
./scripts/build-server.sh
./scripts/build-frontend.sh
./scripts/build-web-release.sh
./scripts/package-vps.sh
./scripts/build-desktop.sh --platform macos --debug
./scripts/dev-local.sh --smoke
./scripts/check-focused.sh
./scripts/ci-all.shContributor validation expectations live in CONTRIBUTING.md.
Maintainer/full-CI commands live behind ./scripts/ci-all.sh and the Cargo
aliases in .cargo/config.toml.
Optional shared compiler cache:
- Install
sccachefor faster repeated local builds - Set
SP42_USE_SCCACHE=1to requiresccache - Leave
SP42_USE_SCCACHEunset to auto-enablesccachewhen available without making it mandatory
- docs/STATUS.md: phase-by-phase project status
- docs/DEVELOPER_SURFACE.md: developer-oriented surface summary
- docs/RUNTIME_CONFIGURATION.md: runtime modes, API base URL config, and local auth
- docs/DESKTOP_DISTRIBUTION.md: macOS, Windows, and Linux desktop packaging
- CONTRIBUTING.md: contributor workflow and local checks
- GOVERNANCE.md: maintainer model, protected areas, and release authority
- CODE_OF_CONDUCT.md: participation expectations
- docs/scoring/SCORING_CONSTITUTION.md: scoring system principles and technical rules
- docs/scoring/POLICY_LAYOUT.md: scoring policy and evaluation directory layout
- docs/FRONTEND_DESIGN_CONTRACT.md: frontend contract
- docs/prd/README.md: PRD protocol for user-facing changes
- docs/adr/0001-foundational-decisions.md: foundational architecture decisions
- docs/adr/0002-local-dev-auth-bridge.md: local auth bridge decision
- docs/adr/0003-node-anchored-wikitext-editing.md: node-anchored wikitext editing proposal
- docs/adr/0004-crate-boundary-collaboration-model.md: crate-boundary collaboration model
- docs/adr/0005-design-system-shared-component-layer.md: design system and shared component layer (sp42-ui)
SP42 is licensed under the GNU General Public License version 3 only
(GPL-3.0-only). See LICENSE.