Skip to content

Workaround for merging PR stack #40 - #45

Merged
GCdePaula merged 29 commits into
mainfrom
fix/stack-40-review
Sep 22, 2026
Merged

GCdePaula merged 29 commits into
mainfrom
fix/stack-40-review

Conversation

@GCdePaula

@GCdePaula GCdePaula commented Sep 22, 2026

Copy link
Copy Markdown
Member

Contains all commits from PR stack #40: #36, #38, #39, #42, #43, #44.

Adapt Eduardo Bart's C application support from PR #32 to the revised
Application contract. Keep exclusive movable engine ownership, native progress,
fallible validation/execution, and typed missing/corrupt checkpoint errors.
Add a reference wallet engine, host binaries, and tests through the actual ABI.

Source: #32
Source-Commit: 0fa1755
Let file-backed applications load genesis only when setup needs its initial
snapshot. Completed setup remains a no-op after the original genesis file is
gone. Expose run_command for custom parsers so the C host shares command-task
panic projection and the existing bootstrap error policy.

Remove the external engine's arbitrary payload ceiling and align checkpoint
deletion documentation with database-reference removal before garbage collection.

BREAKING CHANGE: genesis factories passed to run_main, run_command, dispatch,
and setup return Result<A, AppError>. Wrap infallible constructors in Ok(...).
Exercise mixed outputs through a test ABI that reuses its payload buffer, including a full-width nonzero voucher value. Restore the external archive CI smoke check and libclang dependency, and clarify bridge discovery and cross-target determinism responsibilities.

Validation: workspace check, strict Clippy, formatting, 718 host tests, and external archive build plus CLI smoke check passed.
Catch application snapshot-path panics at both HTTP handlers and invoke the host terminal-abort policy. Classify deterministic application bootstrap I/O failures as terminal while keeping operational I/O restartable and genesis construction lazy.

Validate both snapshot routes with subprocess SIGABRT tests and extend the exit-code table with terminal and retryable bootstrap cases.
Recognize --help and -h before treating the argument as a dump path. Pin successful help output and an untouched working directory in a CLI regression test, and remove the unused tracing dependency from the generic host.
Read the stable method payload bound from the linked engine, return count and clock together, and let the sequencer discard self-contained checkpoint directories with ordinary filesystem deletion. Remove the duplicated payload-limit build setting and cleanup-only Application type parameters.

Update the reference ABI implementation, file/directory independence tests, build instructions, and protocol guide. Keep engine-dependent output, layout, conformance, and linking work documented as follow-ups.

BREAKING CHANGE: Application implementations replace MAX_METHOD_PAYLOAD_BYTES with max_method_payload_bytes() and remove delete_dump. Native archives export application_engine_max_method_payload_bytes and application_engine_progress with ApplicationEngineProgress instead of scalar progress getters and a deletion hook. External builds require only the archive and header settings.

Validation: 722 host tests passed, with one existing ignored doctest; workspace check, strict Clippy, formatting, C11/C++17 header checks, and external archive build plus CLI smoke check passed.
Validate history claims before inclusive canonical pagination and capture snapshot history identity with the artifact lease. Preserve existing HTTP and WebSocket behavior for the coordinated consumer cutover.

Cover recovery replacement, coherent reads, rebuilt history bases, deep backlogs, and lease metadata. Record the accepted snapshot-to-tip workflow and remaining API work.
Use one current application sequence with mandatory offsets and atomic recovery suffix replacement. Publish complete era baselines and derive immutable batch snapshot acceptance directly from L1 facts.

Serve restorable HTTP archives and require versioned canonical WS claims. Update SDK, recovery exports, watchdog metadata, tests, and architecture documentation.
Exercise nonempty HTTP restore, concurrent catch-up, live replication, and recovery rebootstrap through the consumer API. Preserve Lua module paths in doctor and correct benchmark fee defaults uncovered during validation.

Record pinned emulator 0.20 canonical-machine gates and an exact-revision ABBA latency comparison. Native engine conformance and deployment latency remain separate integration gates.
Expose era-pinned historical L1 pages and coherent history metadata for application projections. Record preserved-prefix cuts atomically with recovery and expose generation compatibility through HTTP and the Rust SDK.

Cover projection restore, historical replay, missed recoveries, and subscription races. Document manual recovery readiness and separate downstream adoption from API merge criteria.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants