Skip to content

Release v0.5.0 — PatentForge merge plan complete#17

Merged
scottconverse merged 3 commits into
masterfrom
pipeline-cw/2026-05-15-0903-release-v0.5.0
May 15, 2026
Merged

Release v0.5.0 — PatentForge merge plan complete#17
scottconverse merged 3 commits into
masterfrom
pipeline-cw/2026-05-15-0903-release-v0.5.0

Conversation

@scottconverse

@scottconverse scottconverse commented May 15, 2026

Copy link
Copy Markdown
Owner

Run 8 — v0.5.0 release cutover

The merged-product release. Closes the 8-run PatentForge merge plan started 2026-05-14.

What this PR does

Version bump to 0.5.0 across every surface

  • backend/package.json, frontend/package.json, services/feasibility/package.json — all 0.1.4 → 0.5.0.
  • 3 Python services' pyproject.toml — all 0.1.1 → 0.5.0.
  • 3 FastAPI version= constructor args — aligned to 0.5.0 (one was 0.6.0 — fixed).
  • tray/cmd/tray/main.go version constant 0.1.0 → 0.5.0.
  • installer/windows/patentforgelocal.iss MyAppVersion "0.1.4" → "0.5.0" + MyAppName "PatentForgeLocal" → "PatentForge".
  • README h1, USER-MANUAL h1, ARCHITECTURE Version+Status, docs/index.html Version 0.5.0.

Silent DB-rename startup hook

New backend/src/db-migrate.ts module + 11 unit/integration tests. If patentforgelocal.db exists in the DATABASE_URL parent directory AND patentforge.db does not, rename it. Updates process.env.DATABASE_URL to the new name BEFORE PrismaClient is constructed. Called from main.ts:bootstrap() between validateEnvironment() and NestFactory.create(). Fail-soft: any rename error logs a warning; Prisma creates a fresh patentforge.db.

CHANGELOG promotion

## [Unreleased] consolidated into ## [0.5.0] - 2026-05-15 with all Runs 2/4/5/6/7/8 content under it. New empty [Unreleased] block above per Keep a Changelog.

Service-side branding tail

Run 7 cleaned up frontend PatentForgeLocal strings; this run finishes the service-side strings:

  • Backend service log prefixes, export disclaimer text, Word doc metadata.
  • Python service module docstrings + 1 test expectation.
  • Tray UI strings (systray title, About, tooltips, Open menu, log lines, default logs fallback).
  • Tray package + struct comments.

Preserved: Go module path github.com/scottconverse/patentforgelocal/* (rename requires coordinated go mod edit + repo rename), binary filenames (build-pipeline-dependent), patentforgelocal.lock (instance lock continuity), patentforgelocal.db in tray Config (handled by the new db-migrate hook), GitHub URL (auto-redirects post repo-rename), the deliberate historical-context strings in doc-version-audit.spec.ts.

Release artifacts

  • PatentForge-Architecture.docx regenerated from v0.5.0 ARCHITECTURE.md via pandoc.
  • README-FULL.pdf regenerated from v0.5.0 README.md via pandoc + xelatex.
  • discussion-post.md drafted at .pipeline-cw/2026-05-15-0903-release-v0.5.0/discussion-post.md for the GitHub Discussions announcement (Lens 8 release-comms).

Verification

Subproject Tests Status
backend Jest 340/340 ✓ (+11 db-migrate tests this run)
backend tsc clean
frontend Vitest 231/231
frontend tsc 5 baseline, 0 new
tray go test + vet + build green
services/claim-drafter pytest 89/89
services/application-generator pytest 92/92 ✓ (1 test updated for new brand string)
services/compliance-checker pytest 71/71
services/feasibility npm test 29/29
docker compose config --quiet exit 0
3 installer scripts bash -n syntax-clean
pandoc DOCX regen OK
pandoc PDF regen (xelatex) OK

852 automated tests green (up +11 from Run 7's 841 baseline — db-migrate hook coverage).

Audit

8-lens audit at .pipeline-cw/2026-05-15-0903-release-v0.5.0/audit.md:

  • 0 BLOCKER, 0 MAJOR.
  • Lens 7 (Version-Surface) — GATING — PASSED. Every version string in the inventoried 15 surfaces reads 0.5.0 and they agree.
  • Lens 8 (Release-Comms) — GATING — PASSED. discussion-post.md present + non-empty; landing-page version bumped.
  • 2 MINOR carried from Run 7 audit (PRD.md kept as historical product-intent doc; diagrams/architecture.png regen deferred to release-pipeline step) — both with out-of-scope-because.

Browser-deferred operator checklist

.pipeline-cw/2026-05-15-0903-release-v0.5.0/BROWSER-DEFERRED.md — covers tray UI rebrand, exported-report disclaimer rebrand, the DB-rename smoke test on a real PatentForgeLocal install, landing-page version, binary-regen quality, and the post-merge repo rename + archive checklist.

Migration

  • Existing PatentForgeLocal installs: silent. DB file is renamed automatically on first boot. Provider defaults to LOCAL. Encrypted API keys + Gemma 4 model preserved. No re-entry needed.
  • Existing original PatentForge cloud-only users: their repo will be archived post-merge; reinstall the merged PatentForge in Cloud mode and paste their Anthropic key.

Post-merge operator actions

After this PR squash-merges:

  1. Tag v0.5.0 on the merge commit (pushed automatically via the orchestrator's authorized merge/tag/push run).
  2. Create GitHub Release marked Latest with the discussion-post body and a pointer to CHANGELOG [0.5.0].
  3. Rename repo scottconverse/patentforgelocal → scottconverse/patentforge in GitHub settings (destructive; GitHub auto-redirects preserve inbound links).
  4. Archive scottconverse/patentforge (the original cloud-only upstream repo). Preserves issue history; keeps the URL alive for inbound links.
  5. Walk the BROWSER-DEFERRED checklist (especially the real-install DB-rename smoke).

The orchestrator will execute #1 and #2 on operator authorization (merge/tag/push). #3 + #4 are GitHub-level destructive operations called out here for the operator to do at the GitHub UI / gh api level when they're ready to cut over.

Run trace

Full evidence log: .pipeline-cw/2026-05-15-0903-release-v0.5.0/log.md.


Generated by pipeline-cw. Run-id: 2026-05-15-0903-release-v0.5.0.

…GELOG consolidation

Bumps every version surface in the repo from 0.1.4/0.1.1 to 0.5.0:
- backend/frontend/feasibility package.json
- 3 Python services pyproject.toml
- 3 FastAPI version= constructor args (one was 0.6.0 — aligned to 0.5.0)
- tray/cmd/tray/main.go version constant
- installer/windows/patentforgelocal.iss MyAppName + MyAppVersion
- README h1, USER-MANUAL h1, ARCHITECTURE version line, docs/index.html

Fixes residual Run 7 branding tail in service code: FastAPI titles
("PatentForgeLocal X" → "PatentForge X"), tray About menu, installer
MyAppName.

CHANGELOG: [Unreleased] consolidated into ## [0.5.0] - 2026-05-15 with
all Run 2/4/5/6/7 content preserved underneath. Run 8 section drafted
under [0.5.0] with verification + migration notes. New empty
[Unreleased] block sits above per Keep a Changelog convention.

Backend Jest 329/329 (was 326/329 pre-CHANGELOG-fix; the
doc-version-audit spec required the [0.5.0] entry to exist).

Run-id: 2026-05-15-0903-release-v0.5.0
…ding cleanup

DB-rename hook:
- New backend/src/db-migrate.ts module with planDbMigration() (testable
  pure function) and migrateDbFileIfNeeded() (mutates process.env +
  filesystem). Renames patentforgelocal.db → patentforge.db in the
  DATABASE_URL parent directory on first boot post-upgrade. Updates
  process.env.DATABASE_URL to the new name BEFORE Prisma is constructed,
  so Prisma sees the migrated state on first connect.
- Called from backend/src/main.ts:bootstrap() between validateEnvironment()
  and NestFactory.create(AppModule).
- Fail-soft: any rename error logs a warning; Prisma creates a fresh
  patentforge.db. Documented in CHANGELOG migration notes.
- 11 new backend Jest tests across db-migrate.spec.ts: 7 planDbMigration
  cases (URL parsing, file-presence matrix, fresh-install) + 4 integration
  cases against tmpdir (rename, both-exist preserve-new, fresh, non-file URL).

Service-side branding (PatentForgeLocal → PatentForge):
- Cleaned up backend/src/{application,claim-draft,compliance,feasibility}/*.ts
  log prefixes + export disclaimer text + Word doc metadata (creator field).
- services/application-generator/src/exporter.py + tests/test_exporter.py
  footer-disclaimer assertion.
- services/feasibility/src/report-exporter.ts disclaimer string.
- services/*/src/server.py module docstrings.
- tray/cmd/tray/main.go user-facing strings (systray title, tooltips,
  About menu, Open menu item, log lines, default logs fallback).
- tray/internal/{config,instance,services}/*.go package + struct + lifecycle
  comments. application-generator /health version 0.6.0 → 0.5.0.

Preserved (deployment / back-compat):
- Go module path github.com/scottconverse/patentforgelocal/* (rename
  requires coordinated `go mod edit` + GitHub repo rename; operator-driven).
- Binary filenames (patentforgelocal-tray.exe, patentforgelocal-backend.exe,
  etc.) — build pipeline depends on these names; rename is a follow-up.
- patentforgelocal.lock filename (instance lock; keeps already-running
  detection working through the upgrade).
- patentforgelocal.db filename in tray Config (intentionally legacy; the
  db-migrate hook detects and renames during backend boot).
- GitHub URL https://github.com/scottconverse/patentforgelocal/releases
  (GitHub auto-redirects after operator-driven repo rename).
- backend/src/doc-version-audit.spec.ts (assertions reference the literal
  brand strings as historical CI guards; deliberate).

Backend Jest: 340/340 (was 329; +11 db-migrate tests). frontend Vitest
231/231 unchanged. Tray go test green. Python pytest 89+92+71 = 252.
Feasibility npm 29/29. docker compose config exit 0. Installers
syntax-clean.

Run-id: 2026-05-15-0903-release-v0.5.0
PatentForge-Architecture.docx regenerated from the v0.5.0 ARCHITECTURE.md
via `pandoc ARCHITECTURE.md -o PatentForge-Architecture.docx`.
README-FULL.pdf regenerated from the v0.5.0 README.md via
`pandoc README.md -o README-FULL.pdf --pdf-engine=xelatex`.

Content reflects the merged-product framing (cloud-or-local) and the
new version string (0.5.0) throughout.

Run-id: 2026-05-15-0903-release-v0.5.0
@scottconverse scottconverse changed the title ** Release v0.5.0 — PatentForge merge plan complete Release v0.5.0 — PatentForge merge plan complete May 15, 2026
@scottconverse scottconverse merged commit 4ea5835 into master May 15, 2026
5 checks passed
@scottconverse scottconverse deleted the pipeline-cw/2026-05-15-0903-release-v0.5.0 branch May 15, 2026 15:23
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