Release/v0.13.0 - #61
Merged
Merged
Conversation
* Complete the set pf examples * feat: rename project from `my-project` to `piper` and update related files - Created `TODOS.md` with implementation plan for renaming and README improvements. - Added `__init__.py` to `piper` package. - Implemented `cli.py` for the `piper` CLI, including commands for extracting entities, summarizing PDFs, and generating images. - Added error handling in `errors.py` for SDK errors. - Created example modules for `extract_entities`, `generate_image`, and `summarize_pdf`. - Implemented file input handling in `file_input.py`. - Added method definitions in `methods` directory for each example. - Updated `runner.py` to handle execution modes for the CLI. - Created end-to-end tests for `extract_entities`. * Rename project from "My Project" to "Piper" throughout the codebase, including README, CLI commands, and package structure. Update all relevant imports and references in the code and tests. Adjust project metadata in pyproject.toml and regenerate lock file. Ensure all instances of the old project name are replaced with the new name, maintaining functionality and consistency across the application. * docs(todos): record Phase 1–2 completion + refresh for cold start Phases 1 (piper rename sweep) and 2 (bootstrap rework) are committed (97a28b2 + 6d5adbf). Reconcile TODOS.md so a fresh session resumes at Phase 3 without being misled by the original future-tense framing: - add a "START HERE" banner (status, commits, still-open questions, the uncommitted cross-repo doc loose end) - update "Current git state" + CHECKPOINT 1 STATUS (committed, tree clean, 3 ahead of main) — was "Nothing committed / mixed staging" - mark the discovered drift RESOLVED and Q2 (branch strategy) resolved - refresh the Key files map to post-rename reality (setuptools not hatch; three name forms; test_extract_entities.py; README is the Phase 3 target with the bootstrap anchor coupling called out) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVcEMuFTCU6iAmi3PP3hho * docs(readme): DevX pass + Mermaid diagrams Rework the starter README so a newcomer sees a real product, not a template: - Frame `uv run` as Python's `npx` before the first command; keep the activate-venv note as the fallback. - Show real, captured expected-output JSON in Quick start and in a new "Try the demos" section (one block per demo: command, output, teaching point). - Lead "Use this template" with the /bootstrap skill; manual steps as the fallback (now naming [project.scripts] + [tool.setuptools] packages, which the old list missed). - Add Mermaid diagrams: a flowchart of how a run works (bundle sent as content, not code), and a sequence diagram of the durable-vs-blocking execution modes (the ~30s cap shown as a lost-message cross). Validated with mmdc. The bootstrap strip/rename anchors (### Use this template, the *Replace "… line, [MIT license](LICENSE)) are preserved; verified the reworded README still strips + renames cleanly with zero surviving placeholder tokens. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVcEMuFTCU6iAmi3PP3hho * docs(todos): record Phase 3-4 completion * docs(changelog): describe piper template rename * docs(todos): record Phase 5 completion * docs(readme): improve flowchart readability * docs(readme): split execution mode diagram * docs(readme): title execution mode comparisons * docs(readme): retitle blocking timeout diagram * docs(readme): separate execution mode examples * Refactor placeholder survivor check with neutral probe * Remove completed TODO plan --------- Co-authored-by: Louis Choquel <8851983+lchoquel@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UH7r6D5TgSAxh68uULedZX
Greptile SummaryThis PR updates the starter for the
Confidence Score: 5/5Safe to merge with low functional risk. Broad but mostly mechanical rename plus scoped demo additions. New CLI paths, file-input helper, parser wrappers, method bundle references, and bootstrap behavior have targeted coverage. No verified bugs were found in the changed paths. No files require special attention.
What T-Rex did
Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant User as User
participant CLI as piper CLI
participant Helper as Example/File helpers
participant Runner as piper.runner
participant API as Pipelex API
User->>CLI: piper extract-entities / summarize-pdf / generate-image
CLI->>Helper: read bundle, parse text or build Document input
Helper-->>CLI: pipe_code, mthds_contents, inputs
CLI->>Runner: dispatch(mode, detach, inputs)
alt blocking
Runner->>API: execute(pipe_code, mthds_contents, inputs)
API-->>Runner: RunResults-compatible output
else durable attended
Runner->>API: start(pipe_code, mthds_contents, inputs)
API-->>Runner: run id
Runner->>API: wait_for_result(run id)
API-->>Runner: RunResults
else durable detached
Runner->>API: start(pipe_code, mthds_contents, inputs)
API-->>Runner: run id
end
Runner-->>CLI: RunResults or run id
CLI->>Helper: parse(results.main_stuff)
CLI-->>User: JSON result
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant User as User
participant CLI as piper CLI
participant Helper as Example/File helpers
participant Runner as piper.runner
participant API as Pipelex API
User->>CLI: piper extract-entities / summarize-pdf / generate-image
CLI->>Helper: read bundle, parse text or build Document input
Helper-->>CLI: pipe_code, mthds_contents, inputs
CLI->>Runner: dispatch(mode, detach, inputs)
alt blocking
Runner->>API: execute(pipe_code, mthds_contents, inputs)
API-->>Runner: RunResults-compatible output
else durable attended
Runner->>API: start(pipe_code, mthds_contents, inputs)
API-->>Runner: run id
Runner->>API: wait_for_result(run id)
API-->>Runner: RunResults
else durable detached
Runner->>API: start(pipe_code, mthds_contents, inputs)
API-->>Runner: run id
end
Runner-->>CLI: RunResults or run id
CLI->>Helper: parse(results.main_stuff)
CLI-->>User: JSON result
Reviews (1): Last reviewed commit: "Release v0.13.0: rename starter placehol..." | Re-trigger Greptile |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
[v0.13.0] - 2026-07-07
my-project/my_project/My Projecttopiper/Piper. The console command is nowuv run piper ..., the template package ispiper/,pyproject.tomlpoints atpiper.cli:app, and the e2e extract-entities test file no longer carries the project placeholder in its name./bootstrapfor the single-token placeholder. It now derives distribution, package, and title forms frompiper, applies context-aware replacements for command vs import/path positions, editspyproject.tomlby key, and aborts before writing if any placeholder tokens survive.uv runbefore the first command, shows real expected output, groups the demos around copy-pasteable commands, explains durable vs blocking execution, and adds Mermaid diagrams for hosted-run flow and execution modes.summarize-pdfsummarizes a document (PDF) into{ title, doc_type, key_points }and demonstrates a file input:piper/file_input.build_document_input()encodes a local file as a base64data:URL wrapped in aDocumentenvelope.generate-imagegenerates an image from a text prompt and is the slow case that overruns the hosted ~30s blocking cap, making the durable-vs-blocking split concrete. Each is a self-contained "copy me" module underpiper/examples/with a matchingmain.mthdsbundle and its own unit + e2e tests. Shipssamples/sample-invoice.pdfto trysummarize-pdfon.