Skip to content

fix: assert the scheduler record's skill_id, not the retired owner - #614

Merged
JarbasAl merged 1 commit into
devfrom
fix/scheduler-record-skill-id
Sep 8, 2026
Merged

JarbasAl merged 1 commit into
devfrom
fix/scheduler-record-skill-id

Conversation

@JarbasAl

@JarbasAl JarbasAl commented Sep 8, 2026

Copy link
Copy Markdown
Member

🤖 Auto-generated by Claude Opus 5 (claude-opus-5) via Claude Code — NOT human-reviewed. Every claim below was executed or read from source, not remembered.

dev is red on all five Pythons. One assertion reads a scheduler-record field that ovos-bus-client renamed.

What is red

FAILED test/unittests/test_scheduler_delegation.py::TestSpecificationDelegation::test_a_delay_in_seconds_becomes_a_relative_timing - KeyError: 'owner'

dev last passed CI on 2026-09-06 at 87334ee. Re-running that same unchanged commit today gives FAILURE (run 34044535288), so nothing in dev changed: a dependency moved under it. ovos-bus-client 2.11.14a2 published on 2026-09-07.

Why the test is wrong, not the emitter

The record no longer carries owner. Printed from the live object built by this very test:

RECORD KEYS: ['context', 'data', 'ephemeral', 'event', 'grace_s', 'id', 'in', 'misfire', 'skill_id']
skill_id value: test.scheduler

The rename is deliberate and carries its own compatibility shim for records already on disk, in ovos_bus_client/util/scheduled_events/schedules.py:179-190:

# A record written by a release that still keyed identity by ``owner``
# is read as ``skill_id`` at this one boundary
if "skill_id" not in record:
    record["skill_id"] = record.pop("owner")

That shim covers a stored record. A record built fresh in memory, which is what this test inspects, is skill_id from the start.

The clincher is in the same file: lines 293 and 301 already assert record["skill_id"]. Line 196 was simply missed when the rest of the file was moved to the new name.

The change

One line, record["owner"]record["skill_id"]. grep for "owner" across ovos_workshop/ and test/ returns that line and nothing else.

Verification

Run Result
test_scheduler_delegation.py 44 passed
full test/unittests 702 passed

Before this change the same tree is 701 passed, 1 failed.

Unblocks #612 and #613, which are red on this and on nothing else.

@github-actions github-actions Bot added the fix label Sep 8, 2026
@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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 Sep 8, 2026

Copy link
Copy Markdown
Contributor

I've done the heavy lifting! Here are the check results. 🏋️‍♂️

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

📋 Repo Health

Checking for any potential repo regressions. 🔄

✅ All required files present.

Latest Version: 9.7.0a2

ovos_workshop/version.py — Version file
README.md — README
LICENSE — License file
pyproject.toml — pyproject.toml
⚠️ setup.py — setup.py
CHANGELOG.md — Changelog
ovos_workshop/version.py has valid version block markers

⚖️ License Check

Ensuring our EULA (if any) is still valid. 📑

✅ No license violations found.

Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed.

🔒 Security (pip-audit)

Ensuring our encryption is top-notch. 🔐

✅ No known vulnerabilities found (72 packages scanned).

📡 Channel Compat — testing

The automated report has been generated. 🖨️

🚧 Channel unresolvable with this checkout — the repo's dependency floors exceed what the channel pins (fleet finding; see the install log).

Constraints: https://raw.githubusercontent.com/OpenVoiceOS/OpenVoiceOS/main/constraints-testing.txt
Resolved stack: channel-compat-testing artifact (constraints + pip freeze).

🔨 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

Beep boop. See you in the next PR! 👋

@JarbasAl
JarbasAl marked this pull request as ready for review September 8, 2026 19:24
@JarbasAl
JarbasAl merged commit 9d406f7 into dev Sep 8, 2026
14 checks passed
@JarbasAl
JarbasAl deleted the fix/scheduler-record-skill-id branch September 8, 2026 19:24
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