Skip to content

fix(cron): restore profile binding and harden origin-local delivery#18120

Closed
caspiannacht-sudo wants to merge 2 commits into
NousResearch:mainfrom
caspiannacht-sudo:fix/cron-profile-hardening-clean-20260430-v3
Closed

fix(cron): restore profile binding and harden origin-local delivery#18120
caspiannacht-sudo wants to merge 2 commits into
NousResearch:mainfrom
caspiannacht-sudo:fix/cron-profile-hardening-clean-20260430-v3

Conversation

@caspiannacht-sudo

Copy link
Copy Markdown

Summary

  • restore cron profile binding and strict unattended website hardening on top of current main
  • treat origin-less cron jobs with deliver=origin as local-only instead of falling back to ambient home-channel configuration
  • harden bound-home cron child-result handoff so temp-file setup failures return structured cron failure tuples
  • align cron tests with the current run_job() dispatcher model and current upstream main

Why this PR replaces the earlier branch

  • the earlier PR branch accidentally carried local history from an outdated base
  • this replacement branch is rebuilt directly from current origin/main
  • it preserves the intended cron/profile-binding work plus the follow-up hardening/fixups, without the stale branch divergence baggage

Changes

cron/profile binding + unattended website hardening

  • restore profile / hermes_home binding in cron job definitions and runtime resolution
  • reintroduce strict unattended website policy coverage and related constants/tool wiring
  • add tests for bound-home cron execution and strict unattended website policy behavior

origin-less delivery and bound-home result hardening

  • remove home-channel fallback for origin-less deliver=origin resolution
  • normalize legacy/list-form deliver handling inside delivery logic
  • guard bound-home temp-dir/temp-file setup
  • keep child result parsing resilient via stdout + temp-file fallback behavior

test alignment

  • make local-execution cron tests dispatcher-aware by pinning resolved Hermes home where required
  • isolate relevant tick-lock paths from live machine state
  • add regression coverage for bound-home tempfile setup failure

Verification

  • venv/bin/python -m pytest tests/cron tests/tools/test_website_policy_strict.py tests/test_hermes_constants.py -q -o 'addopts='
    • 296 passed
  • venv/bin/python -m py_compile cron/scheduler.py tests/cron/test_scheduler.py tests/cron/test_cron_workdir.py tests/cron/test_codex_execution_paths.py tests/cron/test_cron_script.py tests/test_hermes_constants.py tools/cronjob_tools.py tools/website_policy.py hermes_constants.py
    • passed

Caspian Nacht and others added 2 commits April 30, 2026 19:05
Treat origin-less deliver=origin jobs as local-only, including legacy list-form values. Harden bound-home child-result temp-file setup so filesystem failures return structured cron failure tuples. Align cron tests with run_job dispatcher behavior, isolate tick lock paths in tests, and add regression coverage for bound-home tempfile setup failure.
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/cron Cron scheduler and job management labels Apr 30, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

Likely duplicate of #14703 — same cron profile binding + website hardening work, rebased onto current main.

@caspiannacht-sudo

Copy link
Copy Markdown
Author

Closing this as superseded by PR #14703. I have force-updated the #14703 source branch (feature/cron-profile-hardening-20260422-full) to the clean consolidated head previously proposed here, including the follow-up hardening from this PR. The updated branch now points at b87dbee470692ad147f94d2fe73ecd3159d78868, and verification passed on that consolidated branch (296 passed). Please continue review on #14703.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cron Cron scheduler and job management P2 Medium — degraded but workaround exists type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants