Skip to content

ProseForge Agent v0.3.0

Choose a tag to compare

@github-actions github-actions released this 03 Jul 12:04
9070924

Onboarding + hygiene batch. Two-user pain points from v0.2.x feedback:
"is this command real or a scaffold?" and "how do I taste value in 60
seconds?"

Added

  • Readiness badges on every operator report (Report.readiness,
    values ready | contract | planned). Non-ready reports render with a
    visible [contract] / [planned] badge in the title on markdown and
    terminal output, and expose readiness on JSON. The 106 dispatch
    sites that go through _planned_report all inherit "planned" for
    free; gateway slack/discord/signal/email/whatsapp check, remote
    execution backends (docker/ssh/singularity/modal/daytona), and the
    fake skills-hub search now emit "contract" explicitly.
  • --strict global flag — refuses to run any command whose report
    is not readiness="ready", exiting 3 with a one-line pointer at the
    README readiness table. Placed next to --offline.
  • pf-agent quickstart — first-60-seconds offline loop. Delegates
    to the existing DemoRunner, walks intake → phase plan → daily
    workbook → chapter draft → review → export dry-run → memory candidates
    → closeout → report pack, all with the fake provider, no API keys.
    Prints a numbered checklist and every artifact's path.
  • Doctor onboarding check — warns on empty workspace with
    Run pf-agent quickstart for the 60-second offline tour.
  • flake-hunt scheduled workflow — weekly pytest --count 10 -q
    on ubuntu × py3.11; opens an issue on failure. Uses pytest-repeat.
  • integration pytest marker — labels the ~35 tests that touch a
    real subprocess, real HTTP over urllib, or a real sqlite file, so
    they can be run in isolation via pytest -m integration. New
    CI job runs the integration subset separately on every PR after the
    main matrix passes.
  • Readiness table in both READMEs — replaces the earlier bullet
    list with a Command | Status | Notes table so a future PR can update
    one row instead of editing prose.

Changed

  • CI now uses [ci] extras — pytest-rerunfailures + pytest-repeat.
    The main test job passes --reruns 2 --reruns-delay 1 to mask the
    handful of remaining time-sensitive tests while their causal
    rewrites land. Local pytest -q semantics unchanged.
  • Two flaky tests rewritten causally
    test_plugin_sandbox_timeout_returns_before_callback_finishes and
    test_run_returns_timeout_when_func_blocks now assert on
    Event.is_set() / a callback_finished flag rather than wall-clock
    ceilings.
  • Doctor wiring wording — remote gateway and remote execution
    bindings now say "contract-only — see README readiness table",
    matching the new badge terminology.