Skip to content

docs: add CHANGELOG.md and versioning policy (closes #74)#85

Merged
wpak-ai merged 3 commits into
masterfrom
doc/changelog-versioningpolicy
May 29, 2026
Merged

docs: add CHANGELOG.md and versioning policy (closes #74)#85
wpak-ai merged 3 commits into
masterfrom
doc/changelog-versioningpolicy

Conversation

@bradjin8
Copy link
Copy Markdown
Collaborator

@bradjin8 bradjin8 commented May 28, 2026

Summary

  • Add CHANGELOG.md following Keep a Changelog format with a single [Unreleased] section documenting all notable work to date (no versioned release entry yet — nothing has been tagged or shipped)
  • Add a Versioning section to README.md documenting the semver scheme, pre-1.0 stability guarantees, and a table of what constitutes a breaking change per API surface (HTTP API, CLI flags, export format layout, public Python symbols)
  • Add CHANGELOG.md to pyproject.toml sdist includes so it ships with source distributions

Closes #74

Motivation

The project had no documented versioning posture. The README and DEPLOYMENT.md are written at production-deployment level detail, creating an implicit stability signal that did not match the actual pre-1.0 contract. Consumers of the /api/* endpoints and the cursor-chat-export CLI had no way to know when or how the contract might change. This is the "Invisible Contract" finding from the baseline eval (T16+T34).

Test plan

  • CHANGELOG.md renders correctly on GitHub (headings, [Unreleased] footer link to commits/HEAD)
  • Versioning section in README.md is visible in the rendered docs
  • pyproject.toml sdist include list contains CHANGELOG.md
  • pyproject.toml version field (0.1.0) reflects the planned package version; changelog correctly uses [Unreleased] until the first tagged release

Summary by CodeRabbit

  • New Features

    • Web UI: workspace browsing/search, improved code-block rendering, dark/light mode, bookmarkable URLs
    • Export: chat export (Markdown/HTML/PDF/JSON/CSV + one-click web), CLI incremental export, session browsing/export, Windows desktop packaging
  • Bug Fixes

    • Hardened workspace handling, safer path normalization and sanitization, debug mode disabled by default
  • Documentation

    • Added comprehensive CHANGELOG and README versioning guidance (Semantic Versioning)

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6b0020b1-2d02-49c4-b165-28860cace3eb

📥 Commits

Reviewing files that changed from the base of the PR and between 5742abc and 9f1c768.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • README.md
  • pyproject.toml
✅ Files skipped from review due to trivial changes (2)
  • README.md
  • CHANGELOG.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • pyproject.toml

📝 Walkthrough

Walkthrough

Adds a Keep a Changelog formatted CHANGELOG.md with an Unreleased section, updates README Versioning text for Semantic Versioning and pre-1.0 guidance, and includes CHANGELOG.md in the Hatch sdist include list in pyproject.toml.

Changes

Release Documentation and Versioning Policy

Layer / File(s) Summary
CHANGELOG.md with Keep a Changelog format and releases
CHANGELOG.md
Creates CHANGELOG.md following Keep a Changelog conventions with header/description, an [Unreleased] section enumerating Added/Changed/Fixed items, and an Unreleased commit/link reference.
README versioning policy section
README.md
Updates the Versioning section to document Semantic Versioning (MAJOR.MINOR.PATCH), pre-1.0 stability expectations, tightens patch-bump policy to backward-compatible bug fixes only, and points to CHANGELOG.md.
Build configuration for CHANGELOG distribution
pyproject.toml
Adds CHANGELOG.md to the Hatch sdist include list so the changelog is packaged in source distributions.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • clean6378-max-it

Poem

🐰
A changelog hops into the light,
Versions set and pages bright,
Readme whispers pre-1.0 care,
Packaged tales are bundled there,
Small notes, big clarity — delight!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding CHANGELOG.md and versioning policy documentation, and references the closed issue #74.
Linked Issues check ✅ Passed The PR fulfills the key coding-related acceptance criteria: CHANGELOG.md created in Keep a Changelog format with [Unreleased] section, versioning policy added to README.md with semver and pre-1.0 breaking change definitions, pyproject.toml updated to include CHANGELOG.md in sdist, and pyproject.toml version set to 0.1.0.
Out of Scope Changes check ✅ Passed All changes are directly scoped to the issue requirements: CHANGELOG.md format and content, README.md versioning section, and pyproject.toml build configuration for distribution.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch doc/changelog-versioningpolicy

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Around line 47-48: The two broken links labeled [Unreleased] and [0.1.0] in
CHANGELOG.md point to invalid GitHub URLs; update the [Unreleased] compare URL
to use the repo's correct base and the proper compare range (e.g., replace
v0.1.0...HEAD with the actual previous tag..HEAD if different) and change the
[0.1.0] release link to the valid existing tag URL on GitHub (ensure the tag
name matches exactly what exists in the repository), so that the compare and
release links resolve without 404s.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f6d3f1d0-3cb7-44d2-be67-726cc7924b91

📥 Commits

Reviewing files that changed from the base of the PR and between 46bda64 and 5399da6.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • README.md
  • pyproject.toml

Comment thread CHANGELOG.md Outdated
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Actionable comments posted: 0

@bradjin8 bradjin8 self-assigned this May 28, 2026
@bradjin8 bradjin8 requested a review from timon0305 May 28, 2026 16:12
@timon0305
Copy link
Copy Markdown
Collaborator

  • pyproject.toml declares version = "0.1.0"
  • CHANGELOG.md has no [0.1.0] section - everything sits under [Unreleased].
  • No v0.1.0 git tag exists
    So the package says "I am 0.1.0" while the changelog says "nothing has been released" - but pyproject.toml still says 0.1.0, so the two files now disagree about whether 0.1.0 exists.

So please decide

@timon0305
Copy link
Copy Markdown
Collaborator

The PR body still claims "a [0.1.0] - 2026-05-21 entry convering all major feature areas at release," and the test plan has "pyproject.toml version matches the latest changelog entry".
There's no changelog version entry to match.
Please update the description

Comment thread CHANGELOG.md
Comment thread CHANGELOG.md
@bradjin8 bradjin8 force-pushed the doc/changelog-versioningpolicy branch from 631cc84 to 5742abc Compare May 28, 2026 18:12
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

Actionable comments posted: 0

@bradjin8
Copy link
Copy Markdown
Collaborator Author

Updated PR body as pyproject.toml version field (0.1.0) reflects the planned package version; changelog correctly uses [Unreleased] until the first tagged release.

@bradjin8 bradjin8 requested a review from timon0305 May 28, 2026 18:53
bradjin8 added 3 commits May 28, 2026 21:37
#82 is PR for PDF export tests (issue #72), not the _-prefix rename.
Reference issue #73 for decoupling API handlers from service internals.
@bradjin8 bradjin8 force-pushed the doc/changelog-versioningpolicy branch from 5742abc to 9f1c768 Compare May 29, 2026 01:37
@timon0305 timon0305 requested a review from wpak-ai May 29, 2026 13:07
@wpak-ai wpak-ai merged commit 3bd7ce0 into master May 29, 2026
16 checks passed
@wpak-ai wpak-ai deleted the doc/changelog-versioningpolicy branch May 29, 2026 14:29
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.

Add CHANGELOG.md and versioning policy

3 participants