feat(host): host probe family, propose-tier maintenance, weekly digest, startup greeting - #608
Merged
Conversation
…t, startup greeting Phase E of the Joe value-expansion plan: the machine itself is under care. - New 'host' probe type in the deployment framework: memory available % (/proc/meminfo), 1-min load per core, apt upgradable/security counts (enumeration cached 6h — apt is slow), /var/run/reboot-required. All sudo-free; unreadable sources report as unknown, never breached - Maintenance ladder rungs 1-2 implemented: observe (probe flow) and propose (privileged remediations carry the exact operator-run command in the breach text). Routine-execute deliberately unimplemented — the approved action-class list starts empty; hard floor stands - Weekly host digest (memory/load/updates/reboot + deployment-probe health) via an hourly tick task with the last-sent timestamp persisted in archive settings, so restarts don't re-send - Joe startup greeting: ensureOrchestratorRunning queues a durable [STARTUP] outbox notification whenever it (re)starts the process; Joe responds with a brief welcome outlining capabilities (template v8 greeting guidelines rewritten to enumerate them) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Aug 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase E of the Joe value-expansion plan (§5): the host as a monitored asset, with maintenance autonomy stopping exactly where the plan says it should. Also implements the requested startup welcome message.
Design
hostprobe in the existing deployment framework (one more probe type, not a fourth stack): memory available % from/proc/meminfo, 1-min load per core, apt upgradable + security-update counts (cached 6 h — enumeration is slow), and/var/run/reboot-required. All sudo-free; a source that can't be read reportsnull(unknown), never a false breach. PureevaluateHostProbe(config, raw)for testability.sudo apt-get update && sudo apt-get upgrade, reboot window). Routine-execute is deliberately not implemented — the action-class list starts empty per the plan, and the hard floor is untouched.ensureOrchestratorRunningqueues a[STARTUP]notification through the durable outbox whenever it actually (re)starts the agent process — delivered once the process is alive and idle, so no readiness races, and no greeting when the session was already running. Template v8 rewrites the greeting guidelines: respond to the notification with a brief welcome enumerating capabilities (workflows on active repos, deployment + host monitoring, incident response, spawning sessions, trust learning), skipping what isn't configured, ending with one specific next step.Testing
host-probe.test.ts(6 tests): healthy metrics, memory/load breaches, operator-run proposals, opt-outs + custom thresholds, unknown-not-breached, digest content.orchestrator-manager.test.ts+1: greeting queued on create and dead-restart, not when alive.🤖 Generated with Claude Code