Skip to content

Releases: AutoCookies/pomaiqueue

Pomai Queue V1.0.1

10 Feb 14:06

Choose a tag to compare

Summary
Added a mandatory Phase 0 system-understanding artifact with architecture flow (ingest→persist→consume→ack/retry/dead), determinism enforcement points, invariant table, and explicit “Do Not Change” semantics for state machine behavior, event ordering, and snapshot atomicity.

Added pre-code server runtime design notes documenting deterministic startup/shutdown behavior, failure policy, and bounded scope (runtime wrapper without protocol redesign).

Replaced the placeholder server main with a real runnable daemon entrypoint (pomaiqueue_server) that loads config, starts engine, bootstraps queues, handles SIGINT/SIGTERM, and shuts down gracefully with explicit logs.

Implemented strict server config loading (key=value) with typed parsing (ints, durations), deterministic option mapping, unknown-key rejection, and fsync policy validation.

Added a unit test validating config parse success and failure cases (including unknown key rejection).

Updated build system to compile the new server target and include test_server_config in test runs.

Documented server build/run usage in README and added a ready-to-run example config file.

pomai-queue-v1.0.0

10 Feb 06:00

Choose a tag to compare

Summary
Completed the mandatory baseline audit in docs/TEST_BENCH_AUDIT.md before implementation, with explicit gap/risk ranking and priorities for test rigor and performance proof.

Expanded the build/test matrix in CMake: added new unit/integration tests, crash runner gate invocation, stress binary, and four benchmark binaries (bench_enqueue, bench_lease_ack, bench_timeout_retry, bench_recovery).

Added failpoint infrastructure and integrated crash boundaries into engine transition/checkpoint paths (before_log_append, after_log_append, before_checkpoint_rename, before_lease_issue, before_ack_transition, before_timeout_transition, before_dlq_move) for deterministic crash-oracle coverage.

Upgraded checkpoint safety semantics to versioned + CRC-protected binary format (load-time validation + save-time checksum), matching safe-by-design persistence requirements.

Built out deterministic test pyramid coverage:

unit corruption/boundary tests for record, segment log, checkpoint, and queue state transitions/backpressure/idempotency;

integration test for bounded producer/consumer accounting, DLQ counts, restart replay;

failpoint-driven crash scenarios in crash harness.

Added stress harness pomaiqueue_stress with bounded workload CLI flags, JSON throughput/latency output, and invariant-based non-zero failure behavior.

Replaced single benchmark with a reproducible JSON suite + A/B tooling (scripts/bench/run_all.sh, scripts/bench/compare.py) and documented proof narrative.

Upgraded CI into explicit gates for debug+sanitizers/release tests, crash sample, benchmark smoke artifact upload, and sanity lint stage; updated README/docs and readiness scorecard accordingly.

Testing

✅ cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug && cmake --build build -j4

✅ ctest --test-dir build --output-on-failure

✅ ./build/pomaiqueue_stress --seconds 1 --producers 2 --consumers 2 --payload_bytes 64 --queues 1

✅ scripts/bench/run_all.sh build /tmp/pomaiqueue-results.json

✅ python3 scripts/bench/compare.py bench_results.json bench_results.json | head

Pomai Queue V0.2.0

10 Feb 04:44

Choose a tag to compare

Fixed the Release-mode segfault by hardening QueueEngine lifecycle/shard validation before every shard dispatch. I added ValidateShardConfig() and wired it into all public engine entrypoints so invalid startup/config states now return Status errors instead of dereferencing invalid shard pointers.

Added a strict startup guard so Start() now rejects shard_count == 0 with kInvalidArgument, preventing undefined behavior in optimized builds.

Added a regression unit test (TestInvalidShardConfigDoesNotCrash) to ensure invalid shard configuration fails safely (no crash) and to lock this failure mode down in CI.

Pomai Queue Base

10 Feb 03:59

Choose a tag to compare

Pomai Queue Base