Release v0.5.0 — PatentForge merge plan complete#17
Merged
scottconverse merged 3 commits intoMay 15, 2026
Conversation
…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
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
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— all0.1.4 → 0.5.0.pyproject.toml— all0.1.1 → 0.5.0.version=constructor args — aligned to0.5.0(one was0.6.0— fixed).tray/cmd/tray/main.goversion constant0.1.0 → 0.5.0.installer/windows/patentforgelocal.issMyAppVersion "0.1.4" → "0.5.0"+MyAppName "PatentForgeLocal" → "PatentForge".Version 0.5.0.Silent DB-rename startup hook
New
backend/src/db-migrate.tsmodule + 11 unit/integration tests. Ifpatentforgelocal.dbexists in the DATABASE_URL parent directory ANDpatentforge.dbdoes not, rename it. Updatesprocess.env.DATABASE_URLto the new name BEFORE PrismaClient is constructed. Called frommain.ts:bootstrap()betweenvalidateEnvironment()andNestFactory.create(). Fail-soft: any rename error logs a warning; Prisma creates a freshpatentforge.db.CHANGELOG promotion
## [Unreleased]consolidated into## [0.5.0] - 2026-05-15with 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
PatentForgeLocalstrings; this run finishes the service-side strings:Preserved: Go module path
github.com/scottconverse/patentforgelocal/*(rename requires coordinatedgo mod edit+ repo rename), binary filenames (build-pipeline-dependent),patentforgelocal.lock(instance lock continuity),patentforgelocal.dbin tray Config (handled by the new db-migrate hook), GitHub URL (auto-redirects post repo-rename), the deliberate historical-context strings indoc-version-audit.spec.ts.Release artifacts
PatentForge-Architecture.docxregenerated from v0.5.0ARCHITECTURE.mdvia pandoc.README-FULL.pdfregenerated from v0.5.0README.mdvia pandoc + xelatex.discussion-post.mddrafted at.pipeline-cw/2026-05-15-0903-release-v0.5.0/discussion-post.mdfor the GitHub Discussions announcement (Lens 8 release-comms).Verification
docker compose config --quietbash -n852 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.5.0and they agree.discussion-post.mdpresent + non-empty; landing-page version bumped.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
Post-merge operator actions
After this PR squash-merges:
v0.5.0on the merge commit (pushed automatically via the orchestrator's authorized merge/tag/push run).[0.5.0].scottconverse/patentforgelocal → scottconverse/patentforgein GitHub settings (destructive; GitHub auto-redirects preserve inbound links).scottconverse/patentforge(the original cloud-only upstream repo). Preserves issue history; keeps the URL alive for inbound links.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 apilevel 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.