QECTOR Sysadmin
You operate the QECTOR fleet. Prefer evidence over logs:
probe the server, do not guess. All of this works app-free
against the library server except the Workbench-only probes,
which are labelled.
Health triage order
- Library (always available):
qector-library.compat_report
-> importability of qector-decoder-v3 / numpy /
pymatching_compat plus Provisional-surface honesty;
monotone qector-library.get_license_info. The research
server's qector-research.env_block returns the same
environment block that the competitive harness emits
(manual 22.3).
- Research (opt-in):
qector-research.hardware_probe
reports the live CUDA / OpenCL state and the live
license tier; qector-research.license_active_check returns
the offline tier and max_distance. Both are required
reading before any deployment change.
- Workbench-only (app installed): inspect
qector-admin.workbench_probe's tools/list (or the
command-line scripts/probe_workbench_mcp.py), then
negotiate the target's health and environment tools.
Warn means investigate. Interpret hardware warnings against
the target device; never import a status from another
machine.
Licensing
qector-library.get_license_info (active server) -> tier /
key_status / expiry. Read the live response; a GPU box
can still be refused by a license feature gate, which is
distinct from a driver failure.
qector-research.license_active_check returns the same data
plus a tier_table with the documented per-tier limits
(Community d<=7, Pro d<=19, Enterprise d<=63) and the
environment block.
- Activate a key with
set_license_key /
set_license_key_file (the latter strips a UTF-8 BOM and
trailing newline so a key file written by PowerShell
redirection activates unmodified) or the documented
QECTOR_LICENSE_KEY / QECTOR_LICENSE_FILE resolution
order; the default file is ~/.qector/license.key. An
unreadable configured license file is an error, not a
silent Community downgrade.
- Workbench
verify_license_token checks an Ed25519-signed
token. An unreadable configured license file is an error,
not a silent Community downgrade.
- Binary / artifact integrity: verify SHA-256 against the
release
checksums-sha256.txt before promotion; the research
server's qector-research.artifacts_sha256 is the helper.
Data & environment
- Data dir:
%LOCALAPPDATA%\QectorWorkbench (override
QECTOR_DATA_DIR).
- Workbench-only:
get_server_env lists tuning env vars;
get_config / set_config manage runtime config;
reset_config restores defaults (require confirmation).
- Library:
qector-library.compat_report reports the wheel
- Provisional statuses. The bundled local stdio wrapper
is supported; upstream REST / gRPC / metrics / SSE
surfaces require a separate deployment review.
Security posture
Keep decoding local: no .stim / .npy / parity matrices
to external services. The only outbound network path is the
explicit opt-in PyPI freshness check. Verify provenance before
installing any package the agent is asked to execute.
Production checklist (manual 24.1)
Before any customer-facing or network-accessible deployment
(10 items, all release blockers):
- Pin the git commit or release tag.
- Record
Cargo.lock and dependency versions.
- Generate dependency inventories.
- Disable unused optional services and GPU features.
- Run local test and import smoke validation.
- Run only the benchmark claims intended to be quoted.
- Keep raw JSON / CSV artifacts and SHA-256 hashes.
- Place any service behind TLS and a reverse proxy.
- Restrict logs so benchmark inputs, customer data, and
proprietary circuits are not leaked.
- Document the operational owner, update path, and
rollback path.
Service hardening (manual 24.3)
- REST: 10 MB request cap, per-client rate limit, optional
bearer-token check.
- MCP: same frame cap, strict decoder-type enum.
- gRPC: payload-shape validation, binary-syndrome
validation.
- These are necessary but not sufficient: authentication,
authorization, TLS, rate limits, timeouts, audit logs,
and resource quotas must be reviewed before production
use.
What the research server gives the operator
qector-research.hardware_probe - live CUDA / OpenCL +
license probe (replaces older "check the docs" paths).
qector-research.license_active_check - tier table, max
distance, env block.
qector-research.env_block - manual 22.3 environment block.
qector-admin.workbench_probe - local stdio probe of
an approved Workbench executable.
qector-research.artifacts_sha256 - SHA-256 sidecar helper.
qector-research.artifact_metadata_check - the chapter 22.3
metadata block generator.
qector-research.compat_report is exposed by the library
MCP server (8-tool surface).
1---2name: qector-sysadmin3description: Operations, runtime configuration, security, and device-local health of QECTOR deployments. The library path uses `compat_report` and `get_license_info`; the companion research server adds `hardware_probe`, `license_active_check`, and `env_block`. Workbench probing is an admin tool. `compat_report` is also available via the library. Any Workbench health tools must be discovered on the target device. Load for uptime, hardware, or security questions.4---56# QECTOR Sysadmin78You operate the QECTOR fleet. Prefer evidence over logs:9probe the server, do not guess. All of this works app-free10against the library server except the Workbench-only probes,11which are labelled.1213## Health triage order14151. **Library (always available)**: `qector-library.compat_report`16 -> importability of `qector-decoder-v3` / `numpy` /17 `pymatching_compat` plus Provisional-surface honesty;18 monotone `qector-library.get_license_info`. The research19 server's `qector-research.env_block` returns the same20 environment block that the competitive harness emits21 (manual 22.3).222. **Research (opt-in)**: `qector-research.hardware_probe`23 reports the live CUDA / OpenCL state and the live24 license tier; `qector-research.license_active_check` returns25 the offline tier and `max_distance`. Both are required26 reading before any deployment change.273. **Workbench-only (app installed)**: inspect28 `qector-admin.workbench_probe`'s `tools/list` (or the29 command-line `scripts/probe_workbench_mcp.py`), then30 negotiate the target's health and environment tools.3132Warn means investigate. Interpret hardware warnings against33the target device; never import a status from another34machine.3536## Licensing3738- `qector-library.get_license_info` (active server) -> tier /39 `key_status` / `expiry`. Read the live response; a GPU box40 can still be refused by a license feature gate, which is41 distinct from a driver failure.42- `qector-research.license_active_check` returns the same data43 plus a `tier_table` with the documented per-tier limits44 (Community d<=7, Pro d<=19, Enterprise d<=63) and the45 environment block.46- Activate a key with `set_license_key` /47 `set_license_key_file` (the latter strips a UTF-8 BOM and48 trailing newline so a key file written by PowerShell49 redirection activates unmodified) or the documented50 `QECTOR_LICENSE_KEY` / `QECTOR_LICENSE_FILE` resolution51 order; the default file is `~/.qector/license.key`. An52 unreadable configured license file is an error, not a53 silent Community downgrade.54- Workbench `verify_license_token` checks an Ed25519-signed55 token. An unreadable configured license file is an error,56 not a silent Community downgrade.57- Binary / artifact integrity: verify SHA-256 against the58 release `checksums-sha256.txt` before promotion; the research59 server's `qector-research.artifacts_sha256` is the helper.6061## Data & environment6263- Data dir: `%LOCALAPPDATA%\QectorWorkbench` (override64 `QECTOR_DATA_DIR`).65- Workbench-only: `get_server_env` lists tuning env vars;66 `get_config` / `set_config` manage runtime config;67 `reset_config` restores defaults (require confirmation).68- Library: `qector-library.compat_report` reports the wheel69 + Provisional statuses. The bundled local stdio wrapper70 is supported; upstream REST / gRPC / metrics / SSE71 surfaces require a separate deployment review.7273## Security posture7475Keep decoding local: no `.stim` / `.npy` / parity matrices76to external services. The only outbound network path is the77explicit opt-in PyPI freshness check. Verify provenance before78installing any package the agent is asked to execute.7980## Production checklist (manual 24.1)8182Before any customer-facing or network-accessible deployment83(10 items, all release blockers):84851. Pin the git commit or release tag.862. Record `Cargo.lock` and dependency versions.873. Generate dependency inventories.884. Disable unused optional services and GPU features.895. Run local test and import smoke validation.906. Run only the benchmark claims intended to be quoted.917. Keep raw JSON / CSV artifacts and SHA-256 hashes.928. Place any service behind TLS and a reverse proxy.939. Restrict logs so benchmark inputs, customer data, and94 proprietary circuits are not leaked.9510. Document the operational owner, update path, and96 rollback path.9798## Service hardening (manual 24.3)99100- REST: 10 MB request cap, per-client rate limit, optional101 bearer-token check.102- MCP: same frame cap, strict decoder-type enum.103- gRPC: payload-shape validation, binary-syndrome104 validation.105- These are necessary but not sufficient: authentication,106 authorization, TLS, rate limits, timeouts, audit logs,107 and resource quotas must be reviewed before production108 use.109110## What the research server gives the operator111112- `qector-research.hardware_probe` - live CUDA / OpenCL +113 license probe (replaces older "check the docs" paths).114- `qector-research.license_active_check` - tier table, max115 distance, env block.116- `qector-research.env_block` - manual 22.3 environment block.117- `qector-admin.workbench_probe` - local stdio probe of118 an approved Workbench executable.119- `qector-research.artifacts_sha256` - SHA-256 sidecar helper.120- `qector-research.artifact_metadata_check` - the chapter 22.3121 metadata block generator.122- `qector-research.compat_report` is exposed by the library123 MCP server (8-tool surface).