Skip to content

release: v0.2.1#54

Merged
tbitcs merged 3 commits into
mainfrom
develop
Apr 2, 2026
Merged

release: v0.2.1#54
tbitcs merged 3 commits into
mainfrom
develop

Conversation

@tbitcs

@tbitcs tbitcs commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

PID tracking, upgrade --full, CI-gated releases, language templates, RTD/release workflows, template refactor.

Co-Authored-By: Oz oz-agent@warp.dev

tbitcs and others added 3 commits April 2, 2026 15:52
…kflows

Process execution and abort:
- New executor.py: cross-platform PID tracking (.specsmith/pids/),
  timeout enforcement, graceful SIGTERM+SIGKILL (POSIX) / taskkill (Windows)
- CLI commands: specsmith exec, specsmith ps, specsmith abort
- Updated exec.cmd.j2 and exec.sh.j2 shims with PID file tracking

Language-specific templates (#41):
- Rust: Cargo.toml, src/main.rs (CLI)
- Go: go.mod, cmd/main.go
- JS/TS: package.json (web-frontend, fullstack-js variants)

ReadTheDocs integration (#38):
- .readthedocs.yaml and mkdocs.yml templates for Python/doc projects

Release workflow templates (#44):
- .github/workflows/release.yml template with test gate,
  language-aware build, GitHub Release, PyPI publish (Python)

Closes #38, #41, #44

Co-Authored-By: Oz <oz-agent@warp.dev>
…36)

specsmith upgrade --full:
- Regenerates exec shims (PID tracking/abort), CI configs, agent
  integrations — safe: never touches AGENTS.md, LEDGER.md, user docs
- Creates missing community files (CONTRIBUTING.md, LICENSE, etc.)
- Creates missing config files (.editorconfig, .gitattributes)
- This is the mechanism for pushing specsmith fixes (like the exec
  shim locking fix) to existing governed projects

Template refactor (#45):
- Moved pyproject.toml.j2 to python/ subdirectory
- Templates now organized: python/, rust/, go/, js/, community/,
  governance/, docs/, scripts/, workflows/

PyPI integration (#36):
- Already implemented via #44 release.yml template with OIDC-based
  trusted publishing for Python projects

Closes #36, #45

Co-Authored-By: Oz <oz-agent@warp.dev>
- Process abort: specsmith exec/ps/abort with cross-platform PID tracking
- upgrade --full: sync exec shims, CI, agent files to existing projects
- Language templates: Rust, Go, JS/TS (#41)
- RTD templates (#38), release workflow (#44), PyPI integration (#36)
- Template refactor (#45): organized into language subdirectories
- CI-gated releases: test suite must pass before PyPI/RTD publish
- Hardened release workflow: full lint+format+mypy+pytest gate

Co-Authored-By: Oz <oz-agent@warp.dev>
Comment thread src/specsmith/upgrader.py


# Files that are NEVER overwritten by --full sync (user-owned content)
_USER_OWNED: set[str] = {
Comment thread src/specsmith/executor.py
time.sleep(0.2)
# SIGKILL
os.kill(pid, signal.SIGKILL)
except (OSError, subprocess.TimeoutExpired, subprocess.SubprocessError):
Comment thread src/specsmith/upgrader.py
files = adapter.generate(config, root)
for f in files:
synced.append(str(f.relative_to(root)))
except ValueError:
Comment thread src/specsmith/upgrader.py
files = platform.generate_all(config, root)
for f in files:
synced.append(str(f.relative_to(root)))
except ValueError:
@tbitcs tbitcs merged commit 21138f6 into main Apr 2, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant