diff --git a/CHANGELOG.md b/CHANGELOG.md index 63a42ce..6c335a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ All notable changes to this project will be documented in this file. +## [1.0.0.12] - 2026-07-07 + +### Changed +- `make status` no longer prints the Chrome CDP "auto-start not registered (run bin/browser-service install)" hint — Chrome boots on demand now, so an unregistered always-on service isn't a gap to flag. The `auto-start` line still shows when a launchd/systemd service *is* registered. + +## [1.0.0.11] - 2026-07-07 + +### Added +- `reply-to-post`, `stats`, and `sync-planner-persona-from-linkedin` skills now run the inline `bin/outreach-update-check` system check (service health + version check) at skill start, matching `setup-outreach` and `send-connection-request`. Skipped for `outreach-uninstall` (about to tear down) and `conversation-planner` (scheduler-driven, not user-invoked). + ## [1.0.0.10] - 2026-07-07 ### Changed diff --git a/VERSION b/VERSION index 6f1dca2..6ebe80a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0.10 +1.0.0.12 diff --git a/cron/system_status.py b/cron/system_status.py index 97b8031..d4f2012 100644 --- a/cron/system_status.py +++ b/cron/system_status.py @@ -126,8 +126,6 @@ def format_browser_lines() -> list[str]: lines.append( f" auto-start {browser.get('service_backend')} ({browser.get('service_unit_path')})" ) - elif not browser.get("auto_start_on_reboot"): - lines.append(" auto-start not registered (run bin/browser-service install)") return lines diff --git a/outreach/skills/reply-to-post/SKILL.md b/outreach/skills/reply-to-post/SKILL.md index c6a911e..3003c59 100644 --- a/outreach/skills/reply-to-post/SKILL.md +++ b/outreach/skills/reply-to-post/SKILL.md @@ -33,6 +33,20 @@ If `mcp__linkedin__*` tools are not registered in the current session, **stop an operator the LinkedIn MCP is not registered** (fix: run `./install.sh` or `make claude-install`). Do **not** pick up a different browser tool as a fallback. +## System check (run first) + +Before posting, check service health and for a newer ebase version: + +```bash +bin/outreach-update-check 2>/dev/null || true +``` + +Follow the inline flow in skill **`outreach-upgrade`** for every line printed: +`SERVICE_DOWN ` (inform the user, non-blocking), then +`UPGRADE_AVAILABLE` (ask to upgrade), `UPGRADED`/`JUST_UPGRADED` (log and +continue), or `UP_TO_DATE`/empty (continue silently). +Do not block on network failures. + ## Test and fixture data (do not corrupt) - Do **not** edit or write under `tests/` or `tests/fixtures/` when logging or updating pipeline state. diff --git a/outreach/skills/stats/SKILL.md b/outreach/skills/stats/SKILL.md index abac2b9..7027931 100644 --- a/outreach/skills/stats/SKILL.md +++ b/outreach/skills/stats/SKILL.md @@ -7,6 +7,20 @@ description: Show outreach performance — connection funnel, reply rates, seque Render a funnel dashboard from the `get_outreach_stats` MCP tool. One tool call, no loops — all aggregation happens server-side. +## System check (run first) + +Before pulling stats, check service health and for a newer ebase version: + +```bash +bin/outreach-update-check 2>/dev/null || true +``` + +Follow the inline flow in skill **`outreach-upgrade`** for every line printed: +`SERVICE_DOWN ` (inform the user, non-blocking), then +`UPGRADE_AVAILABLE` (ask to upgrade), `UPGRADED`/`JUST_UPGRADED` (log and +continue), or `UP_TO_DATE`/empty (continue silently). +Do not block on network failures. + ## Inputs - `since` (optional) — `YYYY-MM-DD`. If the user gives a relative date ("last week", "since Monday"), resolve it to an absolute date before calling the tool. diff --git a/outreach/skills/sync-planner-persona-from-linkedin/SKILL.md b/outreach/skills/sync-planner-persona-from-linkedin/SKILL.md index a83a384..de2ef51 100644 --- a/outreach/skills/sync-planner-persona-from-linkedin/SKILL.md +++ b/outreach/skills/sync-planner-persona-from-linkedin/SKILL.md @@ -38,6 +38,20 @@ operator the LinkedIn MCP is not registered** (fix: run `./install.sh` or --- +## System check (run first) + +Before syncing, check service health and for a newer ebase version: + +```bash +bin/outreach-update-check 2>/dev/null || true +``` + +Follow the inline flow in skill **`outreach-upgrade`** for every line printed: +`SERVICE_DOWN ` (inform the user, non-blocking), then +`UPGRADE_AVAILABLE` (ask to upgrade), `UPGRADED`/`JUST_UPGRADED` (log and +continue), or `UP_TO_DATE`/empty (continue silently). +Do not block on network failures. + ## When to use - First-time persona setup before running **conversation-planner** diff --git a/pyproject.toml b/pyproject.toml index 7dc2159..9d2d8dc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ebase" -version = "1.0.0.10" +version = "1.0.0.12" description = "LinkedIn recruiting outreach that runs inside Claude Code" readme = "README.md" license = "MIT" diff --git a/uv.lock b/uv.lock index 0b2baa4..591b840 100644 --- a/uv.lock +++ b/uv.lock @@ -245,7 +245,7 @@ wheels = [ [[package]] name = "ebase" -version = "1.0.0.10" +version = "1.0.0.12" source = { virtual = "." } dependencies = [ { name = "certifi" },