Skip to content

Release 2.0.0: Solo and Team workflows - #32

Merged
patrickschiller merged 1 commit into
mainfrom
codex/release-2.0.0
Sep 9, 2026
Merged

patrickschiller merged 1 commit into
mainfrom
codex/release-2.0.0

Conversation

@patrickschiller

Copy link
Copy Markdown
Owner

Summary

Prepare OpenClockwork 2.0.0 as a complete Solo/Team product-generation release.
Existing 1.4.0 installations retain their data and remain in Team mode; Solo is
an explicit installation mode, not a replacement of the existing application.

  • Add the complete personal workflow: owner bootstrap/setup, timer and atomic
    project switching, manual entries, correction/cancellation/split history,
    calendar, effective-dated policies and optional personal accounts/hints.
  • Add customers, internal/customer projects, service orders, billable time and
    precise gross/break/net reports, privacy-aware CSV and printable statements.
  • Protect mode transitions, active-owner boundaries, concurrent revisions,
    current-role/session authorization and the last active administrator.
  • Add five forward migrations and strengthen the existing-data upgrade smoke
    assertions without changing previously merged migrations.
  • Require explicit disposable database targets and confirmations before E2E,
    seed or reset operations. Remove automatic development startup seeding.
  • Align all release metadata and generated API types with 2.0.0. Publish only
    the current curated release-note section, followed by GitHub's changelog.
  • Expand README, release notes, upgrade/backup guidance and dedicated Solo,
    Team and operating-mode comparison documentation.

Validation

  • 32 API E2E suites / 218 tests passed in a newly isolated disposable database.
  • Shared domain: 88 tests passed; web: 27 files / 160 tests passed.
  • Release-tooling and database-target safety: 20 tests passed, including
    non-connecting negative CLI tests.
  • Workspace lint, typecheck and builds passed; release metadata verified.
  • Both 2.0.0 Docker images built and started in separate temporary smoke
    containers; both healthy, web HTTP 200 and proxied API version 2.0.0.
  • Azure Bicep reference template compiled locally without a cloud deployment.
  • Earlier isolated Docker upgrade/restore and representative browser checks
    cover time boundaries, capture-group breaks, history and report privacy.
    User-supplied print-to-PDF output was visually checked. This does not claim
    universal device/browser certification or a long-running production pilot;
    password/session and mode-transition edge cases also have automated coverage.
  • Private local plans, acceptance records, attached PDF, backups, credentials
    and machine-specific addresses are excluded from this PR and image context.

Release and operations

Merge only after CI and DCO are green. Tag the green main merge commit as
v2.0.0; the release workflow verifies it, publishes matching API/web images and
creates the GitHub Release with curated notes.

Production rollout is a separate operator action: retain volumes/timezone,
pause writers, make an encrypted off-machine backup and verify a separate
restore target. No production database is created, reset or migrated by this PR.
Legacy generic-name demo reset scripts intentionally fail closed until their
disposable environment is reviewed. Invoice generation and CAUR agent-usage
accounting remain out of scope.

Add the complete Solo workflow, preserved Team upgrade path, customer time reporting, guarded maintenance commands, comprehensive operator documentation and version-aligned release automation.

Signed-off-by: Patrick Schiller <p@trickschiller.de>
@patrickschiller
patrickschiller merged commit b987090 into main Sep 9, 2026
4 checks passed
@patrickschiller
patrickschiller deleted the codex/release-2.0.0 branch September 9, 2026 19:12
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