Skip to content

Integrate the gor 0.1.0 candidate - #116

Merged
suraciii merged 23 commits into
masterfrom
release-0.1-candidate
Aug 11, 2026
Merged

Integrate the gor 0.1.0 candidate#116
suraciii merged 23 commits into
masterfrom
release-0.1-candidate

Conversation

@suraciii

@suraciii suraciii commented Aug 11, 2026

Copy link
Copy Markdown
Owner

What Changed and Why

This integrates the reviewed gor 0.1.0 delivery batches as one release candidate.

The candidate makes the Single Silo path one complete public product:

  • explicit Runtime setup, startup validation, shutdown, and stable Grain identity;
  • serialized Calls, bounded Activation admission, lifecycle containment, Grain Timers, and observable background failures;
  • persistent State with failure recovery, bounded durable Reminders, terminal Invalid Reminder handling, and Safe Repeat recovery;
  • deterministic code generation, public package boundaries, generated-file checks, and source-positioned validation;
  • a public Shadow Application, clean consumer builds, process restart recovery, and exact v0.0.5 data migration proof;
  • fail-closed local release gates and hosted Linux, macOS, and Windows jobs.

The branch contains 23 individually implemented and reviewed commits so their boundaries remain inspectable. The repository is squash-only; the squash result on master will be a new commit and must receive fresh final-candidate proof.

Tracking

Tracks #102, #103, #104, #105, #106, #107, #108, #109, #110, #111, #112, #113, #114, and #115.

These issues intentionally remain open through this PR. They can be settled only after the squash commit is on remote master and the required final-master evidence exists.

Specification

Batches 1 through 7 and local Batch 8 implementation are complete. The documented Gap remains accurate: hosted proof on the eventual final master commit, the successful exact tagged-module run, and publication are not part of the PR-head claim.

Breaking Changes and Migration

The 0.1.0 public API and generated files are not source-compatible with v0.0.5. Applications must stop all processes, back up the SQLite database and sidecars, update the Grain marker and public API names, configure Stores before Runtime start, and regenerate all generated code. Rolling upgrade is not supported.

The first 0.1.0 start automatically migrates gor-managed SQLite State, Reminder, and Member data. The complete procedure is in Upgrade from v0.0.5.

User-Visible Change

gor 0.1.0 delivers a reliable Single Silo Grain Runtime with explicit startup, typed Grain APIs, persistent State, Grain Timers, durable Reminders, bounded lifecycle work, and verified restart and upgrade paths.

Verification

Exact local PR head: 56989534e940d9c1265235569599d57deb4d2261

Environment: Linux amd64, kernel 7.0.0-27-generic, Go 1.26.5.

  • Cold-cache make ci: exit 0 in 74.55 seconds after go clean -testcache. It started 638 default tests, 638 race tests, 20 simulation tests, 19 generator tests, 45 Transport network tests, 50 Shadow network tests, two resource tests, and three focused 10-second fuzz targets.
  • Cold-cache make external: exit 0 in 45.16 seconds after go clean -testcache. It started four release-command contract tests, one Quick Start process test, and 20 external module tests. The exact v0.0.5 upgrade proof passed in 17.60 seconds.
  • Exact-head hosted run 31497527109: success. Linux Go 1.25 and stable, macOS arm64, Windows amd64, stable govulncheck, and the aggregate ci job passed. Every macOS and Windows default, simulation, generator, generated-file, Transport network, and Shadow network step ran and passed.
  • Exact v0.0.5 migration mutation: replacing both Reminder identity column renames with a no-op made both durability tiers fail with no such column: grain_type; restoring the implementation made the focused test pass.
  • The first hosted run (31494247843) passed both Linux jobs and exposed macOS symlink-path and Windows SQLite URI, path, file-mode, and line-ending defects. Commit f6380a1 repairs those defects with design updates and focused platform tests.
  • The second hosted run (31496555870) passed both Linux jobs and every macOS step. Windows exposed that the integration tests selected file-name characters forbidden by Windows and matched raw paths against quoted error text. Commit 5698953 keeps the URI contract and makes those tests platform-valid.
  • Independent final review of the full aggregate and platform repair found no remaining P0, P1, or P2 issue.
  • Worktree was clean at the exact head.

Not claimed by this PR evidence:

  • PR head or merge-preview checks are not final master same-commit proof;
  • make external-tagged cannot pass until exact tag v0.1.0 exists;
  • no tag or GitHub Release is created by this PR.

Mutation Test

Focused reports cover Activation lifecycle, Grain Timers, State recovery, Reminder delivery, generation, release limits and gates, and the later release-audit follow-ups in this diff. The mutations cover Activation reservation and release, bounded resource ownership, fail-closed test selection, external process restart and receipt comparison, exact tagged-module guards, State failure recovery, Invalid Reminder terminal handling, and exact v0.0.5 schema migration. Every accepted mutation failed at the intended behavior assertion before the implementation was restored.

Required Checks

  • make ci passes locally.
  • Old and new tests do not test the same contract.
  • Production code does not call time.Now().
  • Tests do not use time.Sleep for synchronization.
  • Code does not use a mutex to wait across Calls.
  • A specification supports the change. It states each implementation gap.

@suraciii

Copy link
Copy Markdown
Owner Author

Exact-head candidate proof is complete for this PR batch.

Head: 56989534e940d9c1265235569599d57deb4d2261
Base: 584f008dcf04151ff88376a9cf2c75fcfcd4e050
Hosted run: https://github.com/suraciii/gor/actions/runs/31497527109

Local exact-head evidence after go clean -testcache:

  • make external: exit 0 in 45.16 seconds; 4 release-command contract tests, 1 Quick Start process test, and 20 external module tests. The exact v0.0.5 upgrade proof passed in 17.60 seconds.
  • make ci: exit 0 in 74.55 seconds; default 638, race 638, simulation 20, generator 19, Transport network 45, Shadow network 50, resource 1 + 1, and three focused fuzz targets.
  • Worktree clean at the exact head.

Hosted exact-head result:

  • Linux Go 1.25: pass.
  • Linux stable plus govulncheck: pass.
  • macOS arm64: every default, simulation, generator, generated-file, Transport network, and Shadow network step passed.
  • Windows amd64: every default, simulation, generator, generated-file, Transport network, and Shadow network step passed.
  • Aggregate ci: pass.

The first two hosted runs exposed real macOS and Windows path portability defects. The repairs were design-led, covered by focused tests, and independently reviewed. The final follow-up review found no P0, P1, or P2 issue.

The runner emitted a non-blocking Node.js action deprecation annotation; it did not skip or fail a required job.

Boundary: this is PR-head and merge-preview proof, not final squash-commit proof on remote master. The tracked release issues remain open. make external-tagged, tag creation, and GitHub Release publication remain excluded until the exact v0.1.0 tag exists.

@suraciii
suraciii marked this pull request as ready for review August 11, 2026 13:46
@suraciii
suraciii merged commit 7b65981 into master Aug 11, 2026
5 checks passed
@suraciii
suraciii deleted the release-0.1-candidate branch August 11, 2026 13:50
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.

1 participant