Skip to content

fix: engine add is last-write-wins, never raises on re-registration - #81

Merged
JarbasAl merged 1 commit into
devfrom
fix/idempotency-canonical-name
Aug 16, 2026
Merged

fix: engine add is last-write-wins, never raises on re-registration#81
JarbasAl merged 1 commit into
devfrom
fix/idempotency-canonical-name

Conversation

@JarbasAl

Copy link
Copy Markdown
Member

🤖 Auto-generated by Claude Fable 5 (claude-fable-5) via Claude Code — NOT HUMAN-reviewed. Verify before acting.

The re-registration crash survived the handler-level replace fix: live boot on the current alpha stack still raised "Attempted to re-register existing intent" from the strict engine guard. The tracebacks show why — wire registrations run on thread-pooled bus handlers, and the dual-emit's two frames race: both pass the handler's check-then-remove-then-add sequence, and the loser hits the engine's raise. The callers cannot serialize this; the sighting on a memory-starved live deployment (storms of these errors during slow skill loading) is the same race with a wider window.

The engine's add_intent/add_entity are now last-write-wins: an existing name is replaced, never raised on — the OVOS-INTENT-4 §8.1 semantics the wire handlers already implement, pushed down to where the race actually resolves. The two old test pins asserting the raise pinned the defect itself and are rewritten to pin replacement; a new concurrency test hammers registration from eight threads. Suite: 66 passed, 1 skipped.

@github-actions github-actions Bot added the fix label Aug 16, 2026
@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Important

Review available on request

  • 🔍 Trigger review

Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment @coderabbitai review to review the latest changes. For a full review, comment @coderabbitai full review.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2212d27e-0794-418e-89b0-d2c8b17242c5


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 16, 2026

Copy link
Copy Markdown

The automated pipeline has reached its destination. 🏁

I've aggregated the results of the automated checks for this PR below.

🔍 Lint

Here's the report you've been waiting for. 📁

ruff: issues found — see job log

🔨 Build Tests

The build bots have finished their assembly. 🤖

✅ All versions pass

Python Build Install Tests
3.10
3.11
3.12
3.13
3.14

📊 Coverage

Measuring the density of our automated validation. 🧮

⚠️ 78.7% total coverage

Per-file coverage (3 files)
File Coverage Missing lines
padacioso/version.py 0.0% 5
padacioso/opm.py 79.2% 77
padacioso/__init__.py 79.4% 59

Full report: download the coverage-report artifact.

🏷️ Release Preview

A sneak peek at the future of OpenVoiceOS. 🔮

Current: 2.2.4a1Next: 2.2.5a1

Signal Value
Label (none)
PR title fix: engine add is last-write-wins, never raises on re-registration
Bump build

✅ PR title follows conventional commit format.


🚀 Release Channel Compatibility

Predicted next version: 2.2.5a1

Channel Status Note Current Constraint
Stable Not in channel -
Testing Not in channel -
Alpha Not in channel -

🔒 Security (pip-audit)

Scanning for any potential denial-of-service vectors. 🚫

✅ No known vulnerabilities found (49 packages scanned).

🚌 Bus Coverage

Let's see which bus messages were actually fired during the tests! 🚌

⚠️ Bus coverage report unavailable — check the job log.


Your loyal script, at your command 🫡

@JarbasAl
JarbasAl marked this pull request as ready for review August 16, 2026 15:23
@JarbasAl
JarbasAl merged commit c93f72e into dev Aug 16, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant