Skip to content

PatchPitch 0.3.0

Latest

Choose a tag to compare

@drevendev drevendev released this 24 Oct 12:33

PatchPitch 0.3.0 — unattended campaigns

PatchPitch can now prepare a local announcement pack for Telegram, X, DEV and GitHub from a JSON/TOML job, without opening the studio. Runs retain input snapshots, original responses, failures and publication edits so unfinished work can be resumed explicitly.

Changes

  • Installable patchpitch CLI and python -m patchpitch, with planning, checkpointed runs, explicit resume, validation and campaign-to-studio session export. Scheduled invocations reuse unchanged completed work.
  • Reviewed fact packs and unattended extraction from committed Git ranges, with saved selections tied to source/candidate hashes. Machine-selected facts remain labelled for review.
  • Exactly six relevant X tags selected from a dated observation catalog. Planning reserves the tags and CTA before prose generation; current edited posts are checked for length and policy compliance. Missing evidence blocks the target rather than inventing tags.
  • Optional Quillgrain local-pack compilation and bundle verification with language/register/channel checks and preserved voice snapshots. The verified external engine is 0.1.0rc3, pinned in integration CI; it is not downloaded automatically.
  • Telegram EN/RU, DEV article metadata/body and GitHub notes from the shared facts. Owned DEV drafts can be created/updated explicitly with published=false, receipts and protection for already published articles.
  • DEV uncertain-write recovery retains the exact outgoing payload. If the API omits AI disclosure, observable content is compared and the desired disclosure is sent to the same owned draft; recovery does not blindly create another article.
  • Legacy session/profile and X workflows remain available. The README retains a first run that needs no model.

Install and run

Python 3.11+ is required. Download the wheel and SHA256SUMS from this release, verify the checksum, then install it in a virtual environment:

python -m pip install ./patchpitch-0.3.0-py3-none-any.whl

The source archive includes reviewed examples, documentation and test helpers. From its extracted directory, with local Ollama and the model already installed:

export PATCHPITCH_MODEL=gemma4:12b
export PATCHPITCH_TIMEOUT=600
export PATCHPITCH_SENTRY_DSN=''
python -m patchpitch run --job examples/headless/release.toml --out-root artifacts/campaigns --plan --json
python -m patchpitch run --job examples/headless/release.toml --out-root artifacts/campaigns --json </dev/null

On PowerShell, set $env:PATCHPITCH_MODEL='gemma4:12b' and $env:PATCHPITCH_TIMEOUT='600', and omit the shell-specific </dev/null. The CLI itself needs no terminal input. Install .[ui] from the source directory when the studio is needed; UI/browser dependencies are optional for CLI users. See the headless guide.

Validation and limits

The recorded Linux live run used the unchanged inference implementation before final version promotion: Ubuntu 24.04, Python 3.12.15, Ollama 0.40.10 and gemma4:12b Q4_K_M. It produced four accepted drafts with five real requests in 1599.653 seconds, passed validation/session export and preserved all files on repeat/resume. That is one CPU observation, not a benchmark or a newly claimed final-version inference run. Original snapshots remain unchanged.

  • Use PATCHPITCH_TIMEOUT=600 for that Linux CPU configuration: DEV took 497.921 seconds, exceeding the normal 420-second default.
  • Gemma 3 4B failed the same campaign's output acceptance. Another installed model does not imply equivalent quality.
  • Matching tags is lexical and based on a small historical sample; it is not a reach forecast. Refresh the bundled catalog after its 30-day review window and inspect the final X composer.
  • Model output still needs meaning/voice review. Generation, public export, account draft delivery and publication are separate actions. No new X, Telegram, DEV or other announcement is posted by this release.
  • Version changes affect run identity. Preserve the original environment for unfinished old runs; do not rewrite snapshots to bypass checks.

Final-commit CI runs the base tests, mandatory pinned Quillgrain integration and package checks: wheel/source build, source test collection, and clean installed-wheel CLI checks outside checkout without UI dependencies or inference. Release archives are the exact CI-built files, accompanied by SHA256SUMS and SOURCE_COMMIT. They are not an upload to PyPI.

The reviewed source range is 44ca597...v0.3.0. The annotated tag and SOURCE_COMMIT identify the exact final commit; checksums use plain archive filenames so they can be checked after downloading the assets into one directory.

Native DEV video with sound/controls remains in the backlog. The earlier reviewed DEV article and owner-posted X announcement retain their separate publication history.

Local final-version verification: 334 tests passed, zero skipped, with 15 dependency deprecation warnings (200.71 seconds). Test discovery is scoped to tests/ so archived source copies under ignored evidence directories cannot shadow the real suite.

Final source commit: e5a39f6aba15caba936473787d0142b8cbe25b7c. Final CI: all three jobs passed.