Skip to content

feat(sccm): complete end-to-end diagnostics epic - #490

Merged
adamgell merged 457 commits into
mainfrom
codex/sccm333-integration-timestamp-gate
Aug 5, 2026
Merged

feat(sccm): complete end-to-end diagnostics epic#490
adamgell merged 457 commits into
mainfrom
codex/sccm333-integration-timestamp-gate

Conversation

@adamgell

@adamgell adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Outcome

Completes the SCCM diagnostics epic end to end: deterministic intake, conservative evidence contracts, client/server analyzers, native Windows discovery and bounded capture, Tauri commands, and the SCCM Diagnostics workspace.

Frozen accepted target: 6fbf1f090d1ffc22a11cdfa2690da4e2ec072c66

Evidence gates

  • Staff implementation and integrated local matrices: PASS.
  • Independent software critic: ACCEPT.
  • Hosted CI run 30958500549: every test, analysis, Windows diagnostics, MSRV, E2E, and platform build job passed.
  • Windows artifact cmtrace-open-Windows-x64 ID 8912448983: provenance binds to the frozen target.
  • Authorized fresh whitebox SCCM lab: SCCM-LAB-RESULT: PASS.
  • Raw lab evidence: draft release tag sccm-lab-pr490-6fbf1f09; ZIP SHA-256 f46df02daeabbe53d73f98ea9782ea53bf7949ef7cca8322a633d9d0ba55e217.
  • Independent raw-evidence replay: SHIP ACCEPT; zero missing, mismatched, or undeclared payloads across two collision-safe capture roots.

Lab result

The shipped workspace detected Client from exact CcmExec service evidence despite the Setup registry key being absent, plus Site Server, Management Point, Distribution Point, and Provider. Two native captures produced both client and server manifests.

The whitebox uses a nonstandard client installation. Its fixed allow-listed %WINDIR%\CCM\Logs root does not exist, so the client manifest truthfully records 41 explicit absent declarations rather than deriving an untrusted path. Each server manifest records 19 captured and 8 absent declarations with retained rotation and collection-limit provenance.

Accepted residual risks

  • Nonstandard client log roots are not collected outside the fixed allow-list.
  • Denied/capped/skipped/unsupported/parse-failed states are contract-tested but did not occur naturally in this lab.
  • One Tao teardown panic occurred when MSI installation began, before candidate launch and both successful captures; track only if reproducible outside installation.
  • The raw pack proves two captures through distinct bundle roots and payload snapshots, but does not include a screenshot for every UI transition.

Closes #317
Closes #319
Closes #320
Closes #321
Closes #322
Closes #323
Closes #324
Closes #325
Closes #326
Closes #327
Closes #328
Closes #329
Closes #330
Closes #331
Closes #332
Closes #333
Closes #334
Closes #335

adamgell and others added 30 commits July 31, 2026 16:25
validate_card_with_inventory resolved superseded_by but ignored
supersedes, so a card could name a predecessor no catalog card
declares or one failing the card-id grammar. Apply the inventory
rule to both edges, cover it in the deprecation test, and state
the rule in the catalog doc.

Refs #334
Before this change the json_string and string_array helpers and the
counterpartReadyFacts expect panicked when caller-controlled JSON
carried a wrong shape, so seven adjacent malformed-shape mutations
crashed the validator instead of producing failure strings. Convert
both helpers to return failure strings and route every call site
(transaction and observation ids, finding subjectId, subject
outcome fields, coverage entries, prohibited claims, same-minute
update keys, coverage gap ids, manifest artifact ids, and the
counterpart facts array) through the accumulated-failure path, so
the entire malformed-shape class fails closed rather than only the
enumerated shapes.

Refs #323
Before this change the prep doc stated that CBS.log carries no
ConfigMgr sourceVersion, yet the supplemental-conflict fixture
shipped CBS.log with sourceVersion 5.00.TEST.0000 and the validator
constrained sourceVersion to null only for the supplementalLog kind,
so both null and non-null CBS values passed. Add a test proving a
cbsLog artifact with a ConfigMgr sourceVersion is rejected by kind
validation and by the full scenario validator, and pinning the
shipped fixture value to null.

Refs #323
Before this change the supplemental-conflict fixture shipped CBS.log
with a ConfigMgr sourceVersion of 5.00.TEST.0000 while the prep doc
states neither CBS.log nor ReportingEvents.log carries one, and the
validator forced null only for the supplementalLog kind. Key the
null-sourceVersion constraint on the basename-derived expected kind
so both cbsLog and supplementalLog artifacts reject any ConfigMgr
sourceVersion, and null the shipped CBS.log fixture value so the
corpus matches the documented supplemental servicing boundary.

Refs #323
Before this change the supplemental-conflict source-local CBS
observation carried key null with keyConfidence none yet claimed
lastSuccessfulPhase install, and its finding mirrored the claim.
The prep doc requires every non-null lastSuccessfulPhase to be
proven by a compatible cited complete record containing the exact
key, which an unkeyed observation can never satisfy, but the
validator accepted the claim. Add a test proving a null-key
observation claiming lastSuccessfulPhase is rejected and pinning
the shipped observation and finding values to null.

Refs #323
Before this change a source-local observation with key null could
carry a non-null lastSuccessfulPhase even though the corpus contract
requires every non-null lastSuccessfulPhase to be proven by a cited
complete record containing the exact key, which an unkeyed CBS
symptom can never provide. Enforce null lastSuccessfulPhase on every
keyless observation, null the supplemental-conflict observation and
finding claims, and update the scenario contract so the keyed client
transaction remains the only install-success result.

Refs #323
Before the malformed-shape closure a scalar counterpartReadyFacts
value panicked the validator at the counterpart facts expect, the
same site as the object variant. The closure commit already routes
every non-array counterpartReadyFacts value through the failure
string path; add the scalar variant to the shape battery explicitly
so object, scalar, and scalar-handoff forms are each pinned by a
named mutation.

Refs #323
Before this change evidence citations were only bounds-checked per
tuple, so duplicating a transaction evidence citation in the success
scenario, adding an overlapping updates-success-01-scan line 1-1
range beside the existing 1-2 range, and duplicating the
supplemental-conflict observation citation all validated clean,
double-counting the same logical CCM record for chronology and
corroboration. Add a test proving each mutation is rejected, the
class that blocked sibling lanes #326 and #375.

Refs #323
Before this change citation validation only bounds-checked each
tuple, so duplicate tuples and overlapping line ranges could cite
the same logical CCM record twice within one evidence list and
inflate chronology or corroboration. Expand every in-bounds cited
range into (artifactId, line) identities with the same
evidence_refs_cite_unique_records helper sibling lane #326 uses and
fail closed inside citation_failures, closing the class for
transaction, observation, finding, and counterpart citations alike.

Refs #323
Convert the panic-based matrix, guard, and registry assertions
into Result-returning validators so adversarial mutation probes
can assert rejection without process aborts. Behavior-preserving:
the six existing contract tests still pass unchanged.

Refs #333
Before this change an absent or access-denied artifact could carry
encoding, collectionLimit, or truncated metadata and still validate
clean because artifact_provenance_projection silently nulled the
fields instead of the validator rejecting them, letting noncapture
artifacts retain stale physical provenance. Add a test proving each
field is rejected on an absent artifact in the incomplete scenario
and on the access-denied artifact, the class that blocked sibling
lanes #324 and #352.

Refs #323
Before this change the noncapture manifest branch only rejected
relativePath and nonzero bytesCopied, so absent, access-denied,
skipped, unsupported, and parse-failed artifacts could carry stale
encoding, collectionLimit, or truncated metadata that the provenance
projection silently nulled. Reject each physical metadata field on
every noncapture capture state so stale provenance fails closed,
mirroring the sibling lane #324 noncapture idiom.

Refs #323
Add mutation probes proving the redaction contract inspects only
serialized JSON bytes: a decoded LAB backslash marker value, an
undeclared raw Windows log path, and a marker hidden in a
projection key all pass because serde escaping defeats the byte
containment check. Fails until the projection walk is decoded.

Refs #333
Walk the expected public projection as a decoded JSON value tree:
every object key and string value must fit a closed public grammar
(ascii alphanumerics, dash, dot, max 96 bytes) and no decoded
string may contain a declared private marker. Escaped backslash
identities, raw Windows paths, and marker-shaped keys now fail.

Refs #333
Before this change the malformed-shape helper probe vector used an
inline tuple type that trips the clippy type_complexity gate under
-D warnings. Name the probe tuple with a lifetime-parameterized
type alias; behavior is unchanged.

Refs #323
Before this change five constructs added during the review-fix
round drifted from rustfmt layout in the updates contract test.
Run rustfmt on that single changed file so the format gate passes;
no behavioral change.

Refs #323
Add mutation probes proving fixture refs are unconditional: the
pending #329 server side accepts a merged client repo dir or a
synthetic ref, a policy server slot accepts a client-side repo
dir or a pending issue ref, and the registry accepts a rewritten
content server issue or a dropped #329 acceptance blocker.

Refs #333
Give each pair side an explicit corpus state: merged sides must
cite repo dirs under their own side prefix or synthetic inputs,
while the pending #329 content server side may only use
issue:#329 refs or absent. Pin registry pair ownership (#322 to
#329, #321 to #328, #323 to #330) and keep the #329 pending
acceptance blocker declared.

Refs #333
Add the review's mutation set: every guard label survives with
its adversarial input neutralized (missing to exact, conflicting
to exact, incompatible to compatible, mismatch and unknown to
validated, invalid offset to usable, split to complete, partial
to complete, unrelated to corroborating) and an absent server
ref survives a complete-coverage claim. All must fail closed.

Refs #333
Bind guard labels to input state in both directions: each of the
thirteen guards has an exact demonstration predicate over the
scenario inputs, a declared guard whose inputs were neutralized
is rejected, a demonstrated guard that is undeclared is rejected,
and absent fixture refs must agree with one-sided coverage.

Refs #333
Require the A/B reordered scenarios to carry an ordered input
evidence manifest: same multiset, B replaying A in opposite
order, both sides present, identical fixture refs and input
state, and one deterministic serialization and result id. Fails
because the scenarios encode no reordered inputs at all.

Refs #333
Give each reordered A/B scenario an orderedInputEvidence
manifest of synthetic client and server evidence tokens, with B
replaying A's multiset in opposite order, and admit the field in
the typed scenario contract.

Refs #333
…nt-corpus

test(sccm): prepare Distribution Point corpus
Add mutation probes proving the validator ignores the encoded
reorder evidence: B replaying A's order unchanged, a divergent B
client fixture ref, an emptied A manifest under a declared
reordered-input guard, and an untagged evidence token all pass.

Refs #333
…ation-corpus

test(sccm): prepare hierarchy and replication corpus
…ance-metering-corpus

test(sccm): prepare inventory compliance metering corpus
…point-corpus

test(sccm): prepare SUP and WSUS diagnostic corpus
Demonstrate the reordered-input guard by the encoded manifest:
entries must be side-tagged synthetic tokens covering both
sides, exactly two reordered scenarios must share identical
fixture refs and input state, B must replay A's evidence in
opposite order, and both must serialize one deterministic
expected contract and public projection.

Refs #333
Add mutation probes proving requiredOutputs are decorative: an
arbitraryOutput token in the shared guard matrix, a projection
reduced to a bare notCausal outcome, and a client-only scenario
requesting no server artifact all pass the suite.

Refs #333
feat(sccm): assess pure server intake coverage
@adamgell

adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

Windows SCCM lab executor handoff

Frozen candidate: b11093fa38b539548fd7b6d4380aa286e5ba16d3
Hosted build: Actions run 30917860738, artifact cmtrace-open-Windows-x64
Artifact contents: msi/CMTrace Open_1.5.1_x64_en-US.msi, nsis/CMTrace Open_1.5.1_x64-setup.exe, and provenance/windows-build-provenance.json

Authority and privacy boundary

Proceed only after the operator confirms this is an authorized development SCCM lab containing no customer data. Do not attach raw logs, hostnames, domains, site codes, user names, IPs, paths containing identities, credentials, tokens, or certificates to GitHub. Stop and report a blocker if this boundary cannot be satisfied.

Bootstrap

  1. Open/clone https://github.com/adamgell/cmtraceopen.git.
  2. Fetch codex/sccm333-integration-timestamp-gate, detach at the frozen SHA above, and verify git rev-parse HEAD.
  3. Read AGENTS.md, library.md, and the SCCM integration plan route before exploring.
  4. Download the exact Windows artifact from run 30917860738; verify its provenance file names the frozen SHA before installation.

Native acceptance matrix

  1. Record sanitized lab conditions: Windows edition/build, ConfigMgr version, capture timezone, and generic role topology (role names only).
  2. Exercise native client and server role discovery/capture for every supported role actually installed.
  3. Demonstrate current plus rotated evidence handling.
  4. Demonstrate explicit incomplete, access-denied, malformed, capped/skipped/unsupported states without weakening permissions or collecting unrelated data.
  5. Verify manifests retain generic role/path/rotation provenance, request the smallest missing artifacts, and never convert missing evidence into success or root cause.
  6. Inspect outputs for privacy leaks before retaining anything.
  7. Run issue-specific native intake/collector tests plus Windows workspace tests, strict Clippy, and TypeScript on the exact SHA.
  8. If a real defect appears, reduce it to a sanitized synthetic regression before editing production code; do not commit raw lab evidence.

Required report back on this PR

Post one comment beginning SCCM-LAB-RESULT: PASS or SCCM-LAB-RESULT: REWORK with:

  • exact SHA and artifact provenance result;
  • sanitized OS/ConfigMgr versions, timezone, and generic installed roles;
  • client/server discovery and capture outcomes;
  • incomplete/denied/malformed/rotation outcomes;
  • privacy scan result;
  • native command/test results;
  • defects and synthetic regression commits, if any;
  • explicit statement that no customer or identifying evidence was uploaded.

Do not mark the PR ready or merge it. Roger will review the report, synchronize the board/issues, and perform the protected landing.

@adamgell

adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

SCCM-LAB-RESULT: REWORK

  • Exact candidate: �11093fa38b539548fd7b6d4380aa286e5ba16d3.
  • Artifact provenance: PASS. Downloaded cmtrace-open-Windows-x64 from Actions run 30917860738. windows-build-provenance.json names the exact frozen source SHA; MSI and NSIS SHA-256 values match provenance.
  • Sanitized lab: Windows Server 2022 Datacenter, build 20348; ConfigMgr 5.00.9141.1000; timezone $tz; installed generic roles observed: ConfigMgr Client, Site Server, Management Point, Distribution Point, and Provider. Software Update Point was not observed.
  • Client/server discovery and capture: BLOCKED BY PRODUCT. sccm-diagnostics is not included in the ull/default Cargo feature set in src-tauri/Cargo.toml. The native SCCM module is reader-only, exposes no Tauri command in the application invoke handler, and has no SCCM frontend workspace. The hosted application therefore cannot initiate discovery or capture on this authorized SCCM lab.
  • Incomplete/access-denied/malformed/capped/skipped/unsupported and rotation outcomes: library/fixture contracts are covered and pass, but live native outcomes cannot be exercised because there is no shipped executable discovery/capture path.
  • Privacy scan: PASS for retained/reportable material. Only generic OS/version/timezone/role facts and artifact hashes were retained. No raw logs, hostnames, domains, site codes, usernames, IP addresses, identifying paths, credentials, tokens, or certificates were uploaded.
  • Native validation: cargo test --locked -p cmtrace-open --features sccm-diagnostics --test sccm_client_manifest --test sccm_client_discovery --quiet PASS (25 manifest + 17 discovery tests).
    px tsc --noEmit PASS. The initial combined Rust test/Clippy command exceeded the local command window and produced no usable Clippy verdict; no test failure was observed.
  • Defect/rework required: add sccm-diagnostics to the shipped feature graph, implement production native client and server role discovery/capture behind Tauri commands, and expose an application workflow that can invoke them. Then publish a new provenance-bound Windows artifact and repeat this matrix. No synthetic regression commit was created because this is a missing production execution path, not a discrepancy derived from live evidence.
  • Installation was intentionally not performed after static inspection proved the exact artifact cannot expose SCCM diagnostics; installing it would not make the acceptance matrix executable.
  • Explicit privacy statement: this is an authorized development SCCM lab with no customer data, and no customer or identifying evidence was uploaded.

The PR must remain draft and must not merge at this SHA.

@adamgell

adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

SCCM-LAB-REWORK-ACKNOWLEDGED

The result is accepted as a release blocker on exact SHA b11093fa38b539548fd7b6d4380aa286e5ba16d3.

Root cause: the SCCM parser/native reader contracts are present, but sccm-diagnostics is not in the shipped full feature graph and the application has no native discovery/capture commands or SCCM workspace.

Rework plan: docs/superpowers/plans/2026-08-04-sccm-native-product-path-rework.md at 27c28c0f.

The PR remains draft. The repair is implementing:

  • shipped SCCM feature wiring;
  • read-only Windows client/server role discovery;
  • bounded collision-safe client/server capture with explicit coverage states;
  • privacy-safe validated manifests;
  • Tauri discovery/capture commands; and
  • a Windows SCCM evidence workspace.

A new provenance-bound Windows artifact and a full repeat of the authorized lab matrix are required before merge.

@adamgell

adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

SCCM native product-path rework is published at exact commit 19da86e4ac29fbd02e498e3732099364e87d41fc.

Local evidence gates:

  • Independent critic: ACCEPT; both prior blockers repaired.
  • Frontend: 51 files / 638 tests; production build; TypeScript — PASS.
  • Rust: full workspace/all-target tests (main suite 551); strict app + parser Clippy; wasm32 parser check; Rust 1.88 app compatibility — PASS.
  • Worktree/diff: clean.

Merge remains blocked pending a provenance-bound Windows artifact from this SHA and a fresh authorized SCCM lab result. The prior SCCM-LAB-RESULT: REWORK is not being treated as superseded until that rerun posts PASS.

@adamgell

adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

SCCM-LAB-RESULT: REWORK

Exact candidate and artifact

  • PR feat(sccm): complete end-to-end diagnostics epic #490 head and tested checkout: 19da86e.
  • Workflow/run: CMTrace Open: CI, run 30951088740; all jobs passed.
  • Windows build job: 92135456823.
  • Artifact: cmtrace-open-Windows-x64, artifact ID 8909657859, 17,777,421 bytes.
  • Provenance SHA-256: fc8b572db9a0ce6173f62308593f819a899a3d715789e27006834b8705918908. Its sourceCommit is the exact required SHA.
  • MSI SHA-256: 65dacd1c860239f0772a4ea6ff1c1c05e6715257af236691607fb45696bf11d9.
  • NSIS SHA-256: d71c4f7a6405fb018eab6a0db536e931a4bd53409a131cd42bb546d801fcac2c.
  • Installed executable: 29,727,744 bytes; SHA-256 1319e0e5ebc7498206e8b3d359516b5583c7e994718c206dc8dde667d570aacd, matching MSI provenance.

Sanitized environment and reproduction

  1. On the authorized development lab, install the exact MSI and launch CMTrace Open.
  2. Select Workspace > SCCM Diagnostics. The workspace is visible and responsive.
  3. Before discovery, confirm only Discover environment is available; capture is unavailable.
  4. Independently verify role facts using read-only registry, Win32_Service CIM, and installed components. Observed: ConfigMgr Client, Site Server, Management Point, Distribution Point, and Provider. Software Update Point, WSUS, and Admin Service were not observed.
  5. Select Discover environment.

Finding: installed ConfigMgr Client is omitted

  • Expected: the running ConfigMgr Client is detected and a bounded client root is admitted. The rework plan explicitly requires client service/registry evidence to produce Client.
  • Actual: the UI reported Distribution Point, Management Point, Provider, and Site Server, but no Client. The Client service is installed and running; the specific CCM Setup registry key consulted by this build is absent. Discovery does not use the client service fact, so it produces no Client role/root.
  • Impact: live role discovery does not match the machine. Capture cannot produce applicable client coverage or sccm-manifest.json. This fails the complete role and client/server manifest matrix.

Bounded server capture results

  • Capture became available after server roles were detected.
  • The UI capture completed without crash or hang: 18 retained artifacts, 21,128,486 bytes, and 26 explicit source rows.
  • Generated sccm-server-manifest.json declared 26 artifacts: 18 captured and 8 absent. All 18 payloads existed and every declared byte count matched the retained file.
  • Rotation provenance remained explicit: 22 current declarations and 4 lo_ declarations.
  • The fixed 8-fragment / 16-MiB per-source collection limits were retained in the manifest. This lab capture did not naturally produce capped or parse-failed evidence, so live reopen behavior for those states was not claimable. Existing exact-SHA hosted contract tests passed, but that does not replace the failed live client matrix.
  • The UI receipt exposed no source path. Manifest scanning found no actual hostname, site code, or raw source path; bundle paths were bounded relative paths.
  • A second UI capture created a distinct UUID bundle. The first manifest remained byte-for-byte unchanged, demonstrating no overwrite/collision.
  • The application remained responsive throughout and exited normally. SCCM roles, services, registry, configuration, and source logs were not changed.

Expected rework

  • Treat read-only CcmExec/Win32_Service evidence as valid Client discovery evidence when the narrow CCM Setup registry key is absent, while retaining the existing privacy boundary and allow-listed root selection.
  • Add a Windows regression covering service-present / setup-key-absent client discovery.
  • Publish a new provenance-bound Windows artifact and repeat the complete authorized matrix, including creation of both client and server manifests where applicable.

Privacy statement: this is an authorized development SCCM lab with no customer data. No hostname, site code, credential, raw log content, source path, customer datum, or identifying evidence was uploaded. The PR must remain draft and must not merge on this result.

@adamgell

adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

RAW-LAB-EVIDENCE-INTAKE

The operator has explicitly authorized transfer of raw evidence from this fresh whitebox SCCM installation to the coding staff through GitHub. A draft prerelease intake exists under tag sccm-lab-pr490-19da86e4 for the current tested SHA.

Lab executor: package the complete existing run (raw client/server capture bundles, manifests, discovery output, application logs, artifact provenance, timestamps, and reproduction notes) into sccm-lab-pr490-19da86e4.zip. Generate a SHA-256 sidecar, then upload both with:

gh release upload sccm-lab-pr490-19da86e4 .\sccm-lab-pr490-19da86e4.zip .\sccm-lab-pr490-19da86e4.zip.sha256 --clobber

Do not redact or synthesize the engineering asset. Keep the release in draft state. Post only the asset names and hashes back here; coding staff will pull the raw bundle with gh release download.

@adamgell

adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

Client discovery rework is published at exact commit 6fbf1f090d1ffc22a11cdfa2690da4e2ec072c66.

  • Staff implementation: exact CcmExec Win32_Service evidence now admits Client when the Setup registry key is absent.
  • Security boundary: service output supplies names only; the client root remains the fixed %WINDIR%\CCM\Logs allow-list.
  • Independent critic: ACCEPT.
  • Full Rust, frontend, production-build, TypeScript, Clippy, wasm32, and Rust 1.88 gates: PASS.

A draft raw-evidence release is ready under tag sccm-lab-pr490-6fbf1f09. The next exact-SHA Windows lab run must upload the complete unredacted whitebox capture archive plus SHA-256 sidecar and provenance there using gh release upload, then post its verdict. Merge remains closed until hosted CI, raw evidence intake, and SCCM-LAB-RESULT: PASS all succeed.

@adamgell

adamgell commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

SCCM-LAB-EXECUTION-READY

Exact candidate: 6fbf1f090d1ffc22a11cdfa2690da4e2ec072c66
Workflow: 30958500549 — all checks and platform builds PASS
Windows job: 92159062535
Artifact: cmtrace-open-Windows-x64, ID 8912448983, 17,755,525 bytes
Provenance SHA-256: 5ccab8f2a72063dbafcd0ecd582e39c23e63079b88b7a6f4581d709cba9da2ff
MSI SHA-256: 6052e044f26ffd4aa8c2c32c3bd2491fcf154bfdb93bf9213d2f226cee2c2fb7
NSIS SHA-256: 235744b892392adc337bcc722ecc95eba21461958bb63b86712dda3b85bc4e01

Lab executor: download artifact 8912448983, verify provenance/windows-build-provenance.json names the exact candidate, install the MSI, and repeat the authorized whitebox matrix. Discovery must now include Client from exact CcmExec service evidence even when the Setup registry key is absent. Capture both client and server evidence and verify both manifests, rotation/coverage, collision safety, and application responsiveness.

Raw evidence is required. Package the complete unredacted run: discovery output, client/server bundles, manifests, retained payloads, application/test logs, screenshots if useful, build provenance, timestamps, and reproduction notes. Create a ZIP and SHA-256 sidecar, then upload both to the existing draft release:

gh release upload sccm-lab-pr490-6fbf1f09 .\sccm-lab-pr490-6fbf1f09.zip .\sccm-lab-pr490-6fbf1f09.zip.sha256 --clobber

Confirm the release assets are downloadable with gh release view sccm-lab-pr490-6fbf1f09 --json assets. Then post SCCM-LAB-RESULT: PASS or SCCM-LAB-RESULT: REWORK here with the raw asset names, sizes, SHA-256, and exact reproduction result. Do not merge.

@adamgell

adamgell commented Aug 5, 2026

Copy link
Copy Markdown
Owner Author

SCCM-LAB-RESULT: PASS

Exact candidate and artifact

  • Tested checkout: 6fbf1f090d1ffc22a11cdfa2690da4e2ec072c66.
  • Workflow/run: CMTrace Open: CI, run 30958500549; all checks and platform builds passed. Windows job: 92159062535.
  • Artifact: cmtrace-open-Windows-x64, artifact ID 8912448983, 17,755,525 bytes.
  • Provenance SHA-256: 5ccab8f2a72063dbafcd0ecd582e39c23e63079b88b7a6f4581d709cba9da2ff; sourceCommit names the exact candidate.
  • MSI SHA-256: 6052e044f26ffd4aa8c2c32c3bd2491fcf154bfdb93bf9213d2f226cee2c2fb7. NSIS SHA-256: 235744b892392adc337bcc722ecc95eba21461958bb63b86712dda3b85bc4e01.
  • MSI installation exited 0. Installed executable was 29,746,176 bytes with SHA-256 d6a199a102bf18bd46d4ab18b805861bc0556dc551a39679e1d71a63aaabbfb8, matching MSI provenance.

Authorized whitebox reproduction

  • Sanitized environment: Windows Server 2022 Datacenter, build 20348; ConfigMgr 5.00.9141.1000; Eastern Standard Time; generic observed roles: Client, Site Server, Management Point, Distribution Point, and Provider.
  • Opened Workspace > SCCM Diagnostics and invoked discovery. PASS: Client was detected from exact running CcmExec CIM/service evidence even though the Setup registry key was absent. Server roles were also reported, the workspace remained responsive, and capture became available.
  • Invoked native capture twice. PASS: both operations completed without crash or hang and created distinct UUID bundle roots; the first bundle was not overwritten.
  • Each bundle contains both sccm-manifest.json and sccm-server-manifest.json. Each client manifest has 41 explicit absent declarations because this whitebox uses a nonstandard client install and the fixed allow-listed %WINDIR%\CCM\Logs root does not exist. This is explicit incomplete coverage, not success or inferred root cause.
  • Each server manifest has 27 declarations: 19 captured and 8 absent. Across each complete client/server manifest pair there are 63 current and 5 .lo_ rotation declarations. Production limits remain 8 fragments and 16 MiB per source.
  • Payload validation: PASS for both runs. Every declared relative payload exists; every declared bytesCopied matches the retained file; zero missing payloads and zero byte mismatches. No access-denied, capped, skipped, unsupported, malformed/parse-failed state occurred naturally in this run, so none is claimed as live. Exact-SHA collector contracts for these states passed.
  • Application responsiveness: PASS through discovery, two captures, and normal continued operation.

Validation

  • cargo test --locked -p cmtrace-open --features sccm-diagnostics --test sccm_native_collection --test sccm_client_manifest --test sccm_client_discovery: PASS, 57 tests.
  • cargo clippy --locked -p cmtrace-open --all-targets --all-features -- -D warnings: PASS.
  • npx vitest run src/workspaces/registry.test.ts src/workspaces/sccm/SccmWorkspace.test.tsx: PASS, 26 tests.
  • npx tsc --noEmit: PASS.
  • Hosted CI log, local native/frontend/Clippy/TypeScript logs, verbose MSI log, UI discovery/capture record, screenshot, exact build provenance/installers, lab facts/timestamps, reproduction notes, validation summary, both complete bundles/manifests, and all retained payloads are included in the raw asset.
  • Defects/synthetic regression commits: none. The service-present/setup-key-absent discovery defect is repaired on this exact SHA and reproduced successfully.

Raw draft-release intake

  • Draft/prerelease tag remains sccm-lab-pr490-6fbf1f09.
  • sccm-lab-pr490-6fbf1f09.zip: 21,053,506 bytes; SHA-256 f46df02daeabbe53d73f98ea9782ea53bf7949ef7cca8322a633d9d0ba55e217.
  • sccm-lab-pr490-6fbf1f09.zip.sha256: 93 bytes; SHA-256 03b95fefd893b16c4c56b5b98381039b5dd6eebe07f5b5fadb4e842a56430c86.
  • gh release view sccm-lab-pr490-6fbf1f09 --json assets confirms both assets are uploaded and downloadable; the release remains draft.

Authorization/privacy statement: this is an authorized fresh whitebox development SCCM lab with no customer data. The operator explicitly authorized the complete unredacted engineering intake through the draft GitHub release. No raw evidence was placed in the PR comment itself.

The PR was not marked ready and was not merged.

@adamgell
adamgell marked this pull request as ready for review August 5, 2026 00:46
@adamgell

adamgell commented Aug 5, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review skipped: 592 files exceed the limit of 300.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@adamgell

adamgell commented Aug 5, 2026

Copy link
Copy Markdown
Owner Author

FINAL-MERGE-GATE: ACCEPTED. CodeRabbit could not execute because the integrated epic changes 592 files, exceeding its 300-file limit. This is a tooling limit, not a review finding. The merge proceeds under the owner-authorized admin path based on exact-SHA staff SHIP ACCEPT, complete hosted CI/build success, authorized SCCM-LAB-RESULT: PASS, and independently replayed raw evidence with zero payload accounting discrepancies. Accepted residual risks are recorded in the PR body.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment