What passed?
On 20 October 2026, all four automated test groups passed against the same JavaScript file served by the public demo. A separate browser walkthrough confirmed draft restoration, repeat-sync handling and stock reconciliation. These results cover a small browser prototype with fictional records.
Test conditions and version
The automated run used Node.js v20.19.3 on macOS (x86_64). The manual walkthrough used the Codex in-app desktop browser with local storage available. The offline checkbox simulates disconnected operations; the browser’s actual network connection was not disabled. Synchronization writes to another ledger in the same browser.
Tested JavaScript SHA-256:
5104a8776f995fa8146225b958b83c53dbc3063802e11945e6379bcab958e33f
This fingerprint identifies the tested file. A changed file needs a new run; the date is not a promise that future versions behave identically.
Observed browser results
| Action | Observed result |
|---|---|
| Enable simulated offline mode; save 120 kg to P-07; reload | 1 pending draft restored; received stock stayed at 0 kg. |
| Disable simulated offline mode; sync | B-104 received 120 kg; pending count became 0. |
| Retry the same sync three times | Each retry added 0 receipts; received stock stayed at 120 kg. |
| Dispatch 80 kg | Received 120 kg; dispatched 80 kg; available 40 kg. |
| Attempt another 50 kg dispatch | Rejected because it exceeded available stock. All three totals stayed unchanged. |
Automated coverage: four groups, four passes
- Drafts and retries: simulated offline sync is rejected; serialized draft data survives restoration; repeated operation IDs do not increase received stock.
- Dispatch rules: dispatch reconciles received and available quantities; excessive, duplicate-ID and offline movements are rejected.
- Batch separation and decimals: movements in one batch do not affect another; 0.30 kg minus 0.10 kg and 0.20 kg leaves zero using integer hundredths.
- Invalid input: invalid quantities, unknown references and duplicate draft IDs cannot create accepted stock.
Reproduce the checks
Open the agriculture pilot demo and use “Reset sample data” to clear only its fictional records. Follow the actions in the table. Browser storage must be available for the reload check. Resetting or clearing browser storage removes the sample history.
For the automated checks, save the test file and demo JavaScript into the same folder, keeping their filenames. With Node.js installed, run:
node --test agriculture-pilot-tests.cjs
Read the recorded test output and environment. The tests execute the exported calculation functions; the browser walkthrough separately checks the visible controls and local persistence.
What these results do not establish
This is first-party prototype evidence, not an independent audit, client case study or field trial. It does not test actual network outages, offline installation or page loading, multiple devices, concurrent server requests, authentication, permissions, recovery from storage loss, physical sensors or production security. It reports no farm yield, income or time-saving results.
A production pilot needs its own acceptance plan: server-side validation, atomic stock updates, record versions, permissions, backup recovery and representative device and field tests. For application to Punjab operations, use the two planning guides below. Their proposed checks are separate from the results reported here.