NORTHSET
Proof-of-Pass Receipt
Receipt ID M-116
ISSUE / WORKEmpty detachment breaks parsing · PR #35
CONTRIBUTOR SELF-RUN — NOT MAINTAINER VERIFICATION
RUN→
01 / TECHNICAL RESULT
Technical result
declared commands passed
Recorded on the named code in the named execution environment. The evidence annex carries the exact scope.
- Upstream
- OPENmutable external state
- Attempts
- 1 totalcurrent
M-116· #1 - Cost record
- PARTIALunpriced
02 / RECORDED WORK SEQUENCE
Northset Proofline
Every task-bound attempt is shown in recorded order. Anatomy geometry follows each non-null elapsed duration’s share; labels retain exact recorded time.
- ATTEMPT 1
M-116READY
ATTEMPT 1 / EXECUTION ANATOMY
03 / ECONOMIC NARRATIVE
Economic identity
Observed sponsorship, authorization, scope, transfer, and outcome. No estimates or inferred value.
01 / MANDATE
Sponsored and authorized
The recorded mandate names both its sponsor and initiative, with authorization tied to a named approver and approval time.
02 / WORK
Demand became scoped work
An external issue invitation became a stable task and a recorded code-and-test scope, without treating scope as a measure of value.
03 / EXTERNAL OUTCOME
Transfer and upstream state
The recorded maintainer transfer and its contingency are separate from upstream state, which remains a mutable external observation.
04 / COST COMPLETENESS
Known, unknown, and unpriced
Known: maintainer payment was none. A known zero external transfer is not a zero total cost.
Missing or unpriced components
- model inference
- actual host compute
- human review
- shared tooling
No complete total is recorded; see the missing or unpriced component record above.
Evidence annexEconomic · technical · provenance · limitations
01Economic evidence
Lineage, usage, caps, outcome, and cost provenance
Economic evidence
Lineage, usage, caps, outcome, and cost provenanceAttempt lineage
M-116attempt 1 · READY
Recorded usage
- requested reviewer model
- gpt-5.6-sol
- actual reviewer model
- not captured
- requested author model
- gpt-5.6-sol
- actual author model
- not captured
- networked setup phase
- 1m03s
- install-only duration
- not captured
- declared commands
- 5.2s
- unclassified executor time
- 11.8s
- CPU time
- not captured
- peak RSS
- not captured
Configured resource envelope
- CPU cap
- 2
- memory cap
- 4096 MB
- PID cap
- 512
- command wall cap
- 1800s
- output cap / stream
- 2000000 bytes
Configured limits are an envelope, not observed consumption.
Cost lines
- maintainer paymentobserved quantity unpriced · 0 external transfer · amount unavailable
Cost status: partial. Values without source-backed quantities and rates remain null.
Outcome facts
- technical checks passed
- true
- PR opened
- true
- CI
- pending
- merged
- false
- accepted as submitted
- not established
- external cycle time
- not captured
- released
- not observed
- deployed
- not observed
- business result
- not observed
02Technical evidence
Code, environment, exact commands, patch, and outputs
Technical evidence
Code, environment, exact commands, patch, and outputsProject
Work
Empty detachment breaks parsing · PR #35
Verification execution
runtime: northset-oss executor v1
human operator: aeziz
Code
- base
583de2e48cf1e176829f3bda7c4da8e0cc7f7ee5- recorded patch commit
ce1598c2a53bd53606f8ee3db31a08b28d8f9f99
declared metadata; not execution-bound- patch diff SHA-256
sha256:7540c6047b18ba9624478b93ff775a81f80ae2c2a23f5134c6cb86bb8c98dd3a
bound to executed patch bytes
Environment
- image reference
- node@sha256:40ad9f3064e67d6860b4bc3fe1880b2953934fd6320ada990e45fe0efa6badd7
- repository digest
node@sha256:40ad9f3064e67d6860b4bc3fe1880b2953934fd6320ada990e45fe0efa6badd7- immutable image ID
sha256:6ed6ff875e9714bb845b850b08f3ad231ccbb5848812647bcf11acdd4bd1d2f8- platform
- linux/arm64
- network
- phaseA:bridge,phaseB:none
Declared checks
Execution summary
1/1 declared command returned exit 0 in the recorded environment
npm test -- --runInBand tests/empty-detachment.test.jsexit 0 · 5.2s
run wall (derived from recorded timestamps) 1m20s
PASS — 1/1 declared command
Every command listed returned exit 0 in the declared environment. Only the listed commands are in scope. Unlisted test, lint, typecheck, build, coverage, compiler, full-suite, and CI gates are not implied or recorded.
Public scope interpretation
The receipt proves the declared automated checks only; maintainer review and merge remain independent human decisions.
Committed patch.diff
diff --git a/bin/9eRoster.js b/bin/9eRoster.js
index f83bac5d78d9769f3af4ec24b2a284782b080137..1f5925e38996536c5c45af30b890f5b752165d95 100644
--- a/bin/9eRoster.js
+++ b/bin/9eRoster.js
@@ -11,7 +11,7 @@ module.exports.parse = (data) => {
for (const force of data[0].force) {
if (force.selections === undefined || force.selections.length !== 1) {
- break;
+ continue;
}
let armyUnitData = force.selections[0].selection.filter(hasUnitSomewhereRecursive);
@@ -69,4 +69,4 @@ function replacer(key, value) {
module.exports.serialize = (roster, spaces = 0) => {
return JSON.stringify(roster, replacer, spaces)
-}
\ No newline at end of file
+}
diff --git a/tests/empty-detachment.test.js b/tests/empty-detachment.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..756638e289fc81f6d5b3f17032b12b778a59520c
--- /dev/null
+++ b/tests/empty-detachment.test.js
@@ -0,0 +1,20 @@
+const fs = require("fs");
+const path = require("path");
+const {roszParse} = require("../bin/roszParser");
+
+test("continues after an empty detachment", () => {
+ const populatedRoster = fs.readFileSync(
+ path.join(__dirname, "../samples/sample-hemlock.ros"),
+ "utf8"
+ );
+ const rosterWithLeadingEmptyDetachment = populatedRoster.replace(
+ "<forces>",
+ '<forces><force id="empty-detachment" name="Empty Detachment" />'
+ );
+
+ const roster = roszParse(Buffer.from(rosterWithLeadingEmptyDetachment));
+
+ expect([...roster.units.values()].map(unit => unit.name)).toStrictEqual([
+ "Hemlock Wraithfighter"
+ ]);
+});
Redacted stdout
=== cmd 1: npm test -- --runInBand tests/empty-detachment.test.js ===
> Elastic-Beanstalk-Sample-App@0.50.0 test
> jest --runInBand tests/empty-detachment.test.js
Redacted stderr
=== cmd 1: npm test -- --runInBand tests/empty-detachment.test.js ===
PASS tests/empty-detachment.test.js
✓ continues after an empty detachment (23 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.034 s
Ran all test suites matching /tests\/empty-detachment.test.js/i.
03Provenance & limitations
Bundle identity, attestation, verification, and claims boundary
Provenance & limitations
Bundle identity, attestation, verification, and claims boundaryRecord details
- payment
- none · not merge-contingent
- redactions
- none recorded
- Bundle contents digest
sha256:283d0c28f432f1f2b8f16bddd7796e79e1c14e17e9755f3af1b2ab2672dd3819- Signed asset SHA-256
sha256:998edf4eb5f7a324146085c14b3e15fcf38907135dfc9aec5687ffd1ea6cadfa- Signed provenance recorded
- verified 2026-07-16T19:32:26.030Z
NOT INCLUDED
- Does not prove code quality
- Does not prove security
- Contributor self-run record of Northset's own contribution; not the maintainer's verification.
- The receipt proves the declared automated checks only; maintainer review and merge remain independent human decisions.
Signed bundle
Verify this receipt
gh attestation verify run-record-M-116-283d0c28f432.tar.gz --repo northset-oss/verification-pilot --signer-workflow northset-oss/verification-pilot/.github/workflows/attest-bundle.ymlAttestation confirms that Northset's signing workflow produced this exact bundle. The signer does not witness the recorded run, and verification does not turn it into maintainer verification.
QR → receipt page