English | 日本語
Simulate and replay UI operations as structured commands for reproducible debugging and screenshot-free MCP agent control (Pure C# + Unity).
Read the architecture »
Report Bug
·
Request Feature
·
Discussions
Table of Contents
SignalRouter is an engine-agnostic Pure C# runtime (Unity is the first target engine) that represents UI operations as structured, serializable commands. Instead of driving the UI through pixels and screenshots, it exposes a semantic UI tree — every interactive element with its identity, role, current value, state, and the operations it currently allows — so command sequences can be executed, recorded, and deterministically replayed.
That enables two things: reproducible debugging (capture a failing session and replay the exact command sequence, application handlers and all) and screenshot-free control by AI agents over MCP (an agent enumerates the operations available in the current screen and drives them directly). It is aimed at teams building Unity apps and games who want their UI to be observable and controllable as data.
Status: The engine-agnostic core is implemented: the single-owner kernel with its typed contracts, the observation/materialization layer with content-addressed canonical state, durable recording (E1–E8 evidence), isolated-twin replay with typed three-valued comparison, a seal evaluator, and a TCK the in-repo reference adapter passes end to end. The protocol gateway (MCP surface) and the Unity adapter are the next roadmap items. Guarantees live in docs/spec/guarantees.md.
- Pure C# (.NET Standard 2.1, C# 9) — the runtime takes zero package dependencies
- Unity 6 — the first target engine (adapter upcoming; the core never depends on it)
- Model Context Protocol (MCP) — the agent-facing surface (gateway upcoming)
The kernel, observation, recording, and replay layers are implemented; the protocol gateway and the Unity adapter are the remaining roadmap items:
- Single-owner kernel — one mutation lane, split-phase adapter protocol, exactly-once completion, and a typed failure matrix; every guarantee is a normative table in docs/spec/.
- Semantic observation — projected views with completeness maps and content-addressed canonical state; a snapshot's
ContentIdis a portable, verify-before-use digest. - Durable recording — an append-only evidence artifact (E1–E8 cuts, delta-encoded checkpoints, a droppable diagnostics timeline) written through a crash-honest reader-classified format.
- Isolated replay — a pre-scan trust boundary, an isolated twin environment, and typed exact comparison answering
Equal | Diverged | Incomparable(reason); a seal evaluator decides what may become a CI verification case. - Adapter TCK — a conformance kit any engine adapter must pass; the in-repo reference adapter passes it end to end.
- Normative performance — quiescent pumps allocate zero bytes and work is proportional to admitted load, enforced by allocation gates in CI.
There is no released package yet. Clone the repository to build the 0.1.0 implementation foundation locally.
git clone https://github.com/dreamingdog0529/SignalRouter.git
cd SignalRouterThe runtime is consumed through the kernel and adapter SDK assemblies
(SignalRouter.Contracts, SignalRouter.Kernel, SignalRouter.AdapterSdk, the codec
leaves, SignalRouter.Recording, SignalRouter.Replay, and SignalRouter.Tck). An
engine adapter implements the adapter SDK seams and proves itself against the TCK —
src/ReferenceAdapter is the working example. There is no released package yet; see
docs/README.md for the architecture and
docs/spec/guarantees.md for the guarantee catalog.
Run the supported wrappers from the repository root:
task build
task test
task checkEvery runtime assembly builds as C# 9 and netstandard2.1 with zero package
dependencies; warnings fail the build. See
docs/development.md for the exact toolchain and
compatibility boundary.
How to contribute: CONTRIBUTING.md
See the open issues and ROADMAP.md for planned features and known issues.
Contributions are welcome. Please read CONTRIBUTING.md for the workflow (Conventional Commits, DCO sign-off, PR process) and our Code of Conduct.
Thanks to everyone who has contributed to SignalRouter. This list is updated automatically from git history.
|
dreamingdog0529 |
WanwanLand |
Repository automation and community files are adapted from container-registry/oss-project-template.
| Document | Purpose |
|---|---|
| docs/README.md | The design-document map: philosophy, architecture, and the spec set |
| guarantees.md | The normative guarantee catalog (evidence, outcomes, failure matrix) |
| development.md | Current development status and tooling |
| CONTRIBUTING.md | Develop, test, PRs, DCO, CI/CD, releases |
| SUPPORT.md | How to get help |
| ROADMAP.md | Direction and how to propose work |
| CODE_OF_CONDUCT.md | Community standards |
| SECURITY.md | Private vulnerability reporting |
| CODEOWNERS | Default code review owners |
| CHANGELOG.md | Release history |
| LICENSE | MIT license text |
Distributed under the MIT License. See LICENSE for more information.
MIT © 2026 dreamingdog0529
- Model Context Protocol — the agent-facing protocol
- oss-project-template — repository automation and community-file foundation