chore: v3.7.0 release prep — docs, version bump, changelog#511
chore: v3.7.0 release prep — docs, version bump, changelog#511
Conversation
- VERSION: 3.6.0 → 3.7.0 - CHANGELOG: document 9 new features and 5 fixes since v3.6.0 - Regenerated API-REFERENCE.md (432→438 endpoints), SCHEMA-REFERENCE.md (64 models), MIGRATIONS-LOG.md (56→60 migrations) - FEATURE-CATALOG.md: 41→50 features, add v3.7.0 sections - user-guide/orders.md: add line editing, line removal, close-short sections - user-guide/production.md: add accept-short, refresh-routing sections - workflows/quote-to-cash.md: add production shortfall path (Step 5b) - Remove stale docs/496-architecture-review.md (was never tracked) Co-authored-by: Claude <[email protected]> Agent-Session: v370-release-docs-20260406
WalkthroughRelease documentation update for version 3.7.0 with changelog entries, version bump, regenerated API/schema reference documents, feature catalog expansion, and new user-guide sections documenting close-short and order line editing workflows. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Review Council Results0 tests 0 ✅ 0s ⏱️ Results for commit d9e581f. |
There was a problem hiding this comment.
Pull request overview
Prepares the v3.7.0 release by bumping the backend version and updating/regenerating the documentation set (API, schema, migrations, feature catalog, and user guides) to reflect newly added sales/production workflows.
Changes:
- Bump backend version to 3.7.0 and add a v3.7.0 CHANGELOG entry.
- Regenerate reference docs (API/schema/migrations) and expand feature catalog counts/features.
- Update user guides with new workflows (close-short, line editing/removal, accept-short, refresh-routing, production shortfall path).
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/user-guide/workflows/quote-to-cash.md | Adds optional “production shortfall” step and updates the checklist accordingly. |
| docs/user-guide/production.md | Documents Accept Short and Refresh Routing workflows; adds quick-reference entries. |
| docs/user-guide/orders.md | Documents order line editing/removal and close-short workflow; adds quick-reference entries. |
| docs/SCHEMA-REFERENCE.md | Regenerated schema reference reflecting new models/fields (e.g., close-short fields, CloseShortRecord). |
| docs/MIGRATIONS-LOG.md | Regenerated migrations log including migrations 074–077 and updated totals. |
| docs/FEATURE-CATALOG.md | Expands feature catalog (41 → 50) with v3.7.0 feature sections and updated metadata. |
| docs/API-REFERENCE.md | Regenerated API reference reflecting new endpoints and updated endpoint counts. |
| CHANGELOG.md | Adds v3.7.0 release notes (Added/Fixed/Documentation). |
| backend/VERSION | Version bump from 3.6.0 to 3.7.0. |
Comments suppressed due to low confidence (2)
docs/API-REFERENCE.md:982
- API reference footer still says Generated for FilaOps Core v3.6.0 while this PR is preparing the v3.7.0 release. Update the generated version string so consumers don’t misinterpret the doc as being for the previous release.
*Last updated: 2026-04-06*
*Generated for FilaOps Core v3.6.0*
docs/MIGRATIONS-LOG.md:1333
- Migrations log footer still says Generated for FilaOps Core v3.6.0 even though the overview/migrations list includes new 074–077 changes for the v3.7.0 release. Update the generated version string to match the release/version bump.
*Last updated: 2026-04-06*
*Generated for FilaOps Core v3.6.0*
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| **Generated:** 2026-03-30 | ||
| **Generated:** 2026-04-06 | ||
| **Source:** FilaOps Core v3.6.0 |
There was a problem hiding this comment.
Schema reference header still says Source: FilaOps Core v3.6.0 even though this PR bumps the release to 3.7.0 and regenerates the schema. Update the source version (or ensure the generator pulls from backend/VERSION) so the doc matches the release being prepared.
| **Source:** FilaOps Core v3.6.0 | |
| **Source:** FilaOps Core v3.7.0 |
| --- | ||
|
|
There was a problem hiding this comment.
There are two consecutive horizontal rules (---) here, which renders as an unnecessary extra separator. Remove one of them to keep the markdown structure clean.
| --- |
| --- | ||
|
|
There was a problem hiding this comment.
There are two consecutive horizontal rules (---) before the new "Editing Order Lines" section. Remove the duplicate separator to avoid redundant markdown output.
| --- |
There was a problem hiding this comment.
Actionable comments posted: 8
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@CHANGELOG.md`:
- Line 22: The release note incorrectly states the PRO gate uses an isPro
feature flag; update the wording to reflect the actual implementation which
gates admin-initiated direct messaging based on the derived 'n' value from
'tier' (e.g., "professional" or "enterprise") instead of an isPro flag—adjust
the line that currently mentions "isPro" so it references gating by 'tier'/'n'
(professional|enterprise) or similar phrasing that matches the frontend logic.
- Line 10: The CHANGELOG has a new heading "## [3.7.0]" but the link-reference
footer still stops at "3.4.0" and the "[Unreleased]" compare target is stale;
update the link-reference block at the bottom to add a reference for "3.7.0"
(pointing to the appropriate GitHub compare URL or tag) and change the
"[Unreleased]" URL to compare from "v3.6.0" (or the correct previous release) to
HEAD so the "## [3.7.0]" heading resolves as a clickable compare link and
Unreleased compares from the correct prior tag.
In `@docs/API-REFERENCE.md`:
- Around line 980-981: The API reference footer currently hardcodes the old
release string "v3.6.0"; update that footer string to "v3.7.0" so the generated
docs match the new endpoints (replace the literal "v3.6.0" found in the footer
text with "v3.7.0").
In `@docs/FEATURE-CATALOG.md`:
- Around line 233-235: Remove the duplicated footer by keeping a single
canonical metadata block and deleting the redundant line; specifically locate
the footer strings "*Last updated: 2026-04-06*", "*Generated for FilaOps Core
v3.7.0*" and the older "*Generated for FilaOps Core (Open Source)*" and remove
the older/generic "*Generated for FilaOps Core (Open Source)*" so only the
versioned generation metadata remains.
In `@docs/MIGRATIONS-LOG.md`:
- Around line 1331-1332: Update the generated footer string that currently reads
"FilaOps Core v3.6.0" to reflect the new release version "FilaOps Core v3.7.0"
(the line containing the footer version text near the "Last updated" timestamp).
In `@docs/SCHEMA-REFERENCE.md`:
- Around line 5-7: The schema header in docs/SCHEMA-REFERENCE.md is out of sync:
replace the header line "Source: FilaOps Core v3.6.0" with "Source: FilaOps Core
v3.7.0" so the document accurately reflects the included 3.7.0 schema additions
(e.g., close-short artifacts); locate the header block containing
"**Generated:**", "**Source:** FilaOps Core v3.6.0", and "**Total Models:**" and
update the Source version string accordingly.
In `@docs/user-guide/orders.md`:
- Around line 455-456: The docs incorrectly state that admins can remove lines
in "pending" — server-side removal is implemented only for confirmed,
in_production, and on_hold (see sales_orders endpoint and sales_order_service
implementations); update the sentence in the user-guide to remove "pending" from
the list (or split into two clauses clarifying that quantity edits may be
allowed in pending but line removal is limited to confirmed, in_production, and
on_hold) so the doc matches the backend behavior.
- Around line 469-476: The docs text currently says "No active production
orders" which understates the backend guard (it blocks removal if any
non-cancelled production order exists, including completed/closed states);
update the wording in the order line removal section by replacing the phrase "No
active production orders" with "No non-cancelled production orders (including
completed/closed)" and change the note "If a production order exists for the
line, cancel it first before removing the line." to explicitly state "If any
non-cancelled production order (including completed/closed states) exists for
the line, cancel it first before removing the line." so the guide matches the
stricter backend behavior.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 2eae7434-3f34-4387-96f3-78162f4dfc6b
📒 Files selected for processing (9)
CHANGELOG.mdbackend/VERSIONdocs/API-REFERENCE.mddocs/FEATURE-CATALOG.mddocs/MIGRATIONS-LOG.mddocs/SCHEMA-REFERENCE.mddocs/user-guide/orders.mddocs/user-guide/production.mddocs/user-guide/workflows/quote-to-cash.md
|
|
||
| ## [Unreleased] | ||
|
|
||
| ## [3.7.0] - 2026-04-06 |
There was a problem hiding this comment.
Add release link references for 3.7.0 (and update Unreleased compare target)
You introduced ## [3.7.0] but the link-reference block still stops at 3.4.0, so the new heading won’t resolve as a clickable compare link. Also, [Unreleased] still compares from v3.4.0, which is now stale.
Suggested footer patch
-[Unreleased]: https://github.com/Blb3D/filaops/compare/v3.4.0...HEAD
+[Unreleased]: https://github.com/Blb3D/filaops/compare/v3.7.0...HEAD
+[3.7.0]: https://github.com/Blb3D/filaops/compare/v3.6.0...v3.7.0
+[3.6.0]: https://github.com/Blb3D/filaops/compare/v3.5.0...v3.6.0
+[3.5.0]: https://github.com/Blb3D/filaops/compare/v3.4.0...v3.5.0
[3.4.0]: https://github.com/Blb3D/filaops/compare/v3.3.0...v3.4.0Tiny fix, big clickability. TARS approves efficient trajectories.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` at line 10, The CHANGELOG has a new heading "## [3.7.0]" but
the link-reference footer still stops at "3.4.0" and the "[Unreleased]" compare
target is stale; update the link-reference block at the bottom to add a
reference for "3.7.0" (pointing to the appropriate GitHub compare URL or tag)
and change the "[Unreleased]" URL to compare from "v3.6.0" (or the correct
previous release) to HEAD so the "## [3.7.0]" heading resolves as a clickable
compare link and Unreleased compares from the correct prior tag.
| - **Quote PDF redesign** — professional B2B layout with brand colors, two-column header, itemized lines, and terms (#497) | ||
| - **Invoice PDF redesign** — professional layout with full customer info, payment terms, calculated due date, and packing slip match (#504) | ||
| - **Packing slip redesign** — matches invoice/quote style with brand header, dark table header, and alternating row stripes (#504) | ||
| - **Admin messaging** — admin-initiated direct messaging (PRO-gated with `isPro` feature flag) (#493) |
There was a problem hiding this comment.
isPro wording doesn’t match the current implementation
This line says PRO gating uses an isPro feature flag, but the provided frontend code gates on n derived from tier (professional|enterprise), not a flag named isPro. Suggest rewording to avoid drift in release notes.
Suggested wording tweak
-- **Admin messaging** — admin-initiated direct messaging (PRO-gated with `isPro` feature flag) (`#493`)
+- **Admin messaging** — admin-initiated direct messaging (PRO-tier gated in UI) (`#493`)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - **Admin messaging** — admin-initiated direct messaging (PRO-gated with `isPro` feature flag) (#493) | |
| - **Admin messaging** — admin-initiated direct messaging (PRO-tier gated in UI) (`#493`) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` at line 22, The release note incorrectly states the PRO gate
uses an isPro feature flag; update the wording to reflect the actual
implementation which gates admin-initiated direct messaging based on the derived
'n' value from 'tier' (e.g., "professional" or "enterprise") instead of an isPro
flag—adjust the line that currently mentions "isPro" so it references gating by
'tier'/'n' (professional|enterprise) or similar phrasing that matches the
frontend logic.
| *Last updated: 2026-04-06* | ||
| *Generated for FilaOps Core v3.6.0* |
There was a problem hiding this comment.
API reference footer still points to previous release.
Line 981 says v3.6.0 despite this document including new 3.7.0 endpoints. Please update to keep generated docs internally consistent.
Suggested fix
*Last updated: 2026-04-06*
-*Generated for FilaOps Core v3.6.0*
+*Generated for FilaOps Core v3.7.0*📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| *Last updated: 2026-04-06* | |
| *Generated for FilaOps Core v3.6.0* | |
| *Last updated: 2026-04-06* | |
| *Generated for FilaOps Core v3.7.0* |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/API-REFERENCE.md` around lines 980 - 981, The API reference footer
currently hardcodes the old release string "v3.6.0"; update that footer string
to "v3.7.0" so the generated docs match the new endpoints (replace the literal
"v3.6.0" found in the footer text with "v3.7.0").
| *Last updated: 2026-04-06* | ||
| *Generated for FilaOps Core v3.7.0* | ||
| *Generated for FilaOps Core (Open Source)* |
There was a problem hiding this comment.
Footer metadata is now duplicated/inconsistent.
Line 234 already includes versioned generation metadata, but Line 235 leaves an older generic footer in place. Keep one canonical footer to avoid “which one is authoritative?” archaeology later.
Suggested cleanup
*Last updated: 2026-04-06*
*Generated for FilaOps Core v3.7.0*
-*Generated for FilaOps Core (Open Source)*📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| *Last updated: 2026-04-06* | |
| *Generated for FilaOps Core v3.7.0* | |
| *Generated for FilaOps Core (Open Source)* | |
| *Last updated: 2026-04-06* | |
| *Generated for FilaOps Core v3.7.0* |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/FEATURE-CATALOG.md` around lines 233 - 235, Remove the duplicated footer
by keeping a single canonical metadata block and deleting the redundant line;
specifically locate the footer strings "*Last updated: 2026-04-06*", "*Generated
for FilaOps Core v3.7.0*" and the older "*Generated for FilaOps Core (Open
Source)*" and remove the older/generic "*Generated for FilaOps Core (Open
Source)*" so only the versioned generation metadata remains.
| *Last updated: 2026-04-06* | ||
| *Generated for FilaOps Core v3.6.0* |
There was a problem hiding this comment.
Generated version footer is stale.
Line 1332 still says v3.6.0 even though this file now documents migrations through 077 for the 3.7.0 release. Please update the footer to keep release metadata consistent.
Suggested fix
*Last updated: 2026-04-06*
-*Generated for FilaOps Core v3.6.0*
+*Generated for FilaOps Core v3.7.0*📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| *Last updated: 2026-04-06* | |
| *Generated for FilaOps Core v3.6.0* | |
| *Last updated: 2026-04-06* | |
| *Generated for FilaOps Core v3.7.0* |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/MIGRATIONS-LOG.md` around lines 1331 - 1332, Update the generated footer
string that currently reads "FilaOps Core v3.6.0" to reflect the new release
version "FilaOps Core v3.7.0" (the line containing the footer version text near
the "Last updated" timestamp).
| **Generated:** 2026-04-06 | ||
| **Source:** FilaOps Core v3.6.0 | ||
| **Total Models:** 63 (Core only) | ||
| **Total Models:** 64 (Core only) |
There was a problem hiding this comment.
Schema header source version is out of sync.
Line 6 still reports FilaOps Core v3.6.0 while this document includes 3.7.0 schema additions (e.g., close-short artifacts). Update the source version to prevent confusion during audits.
Suggested fix
**Generated:** 2026-04-06
-**Source:** FilaOps Core v3.6.0
+**Source:** FilaOps Core v3.7.0
**Total Models:** 64 (Core only)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| **Generated:** 2026-04-06 | |
| **Source:** FilaOps Core v3.6.0 | |
| **Total Models:** 63 (Core only) | |
| **Total Models:** 64 (Core only) | |
| **Generated:** 2026-04-06 | |
| **Source:** FilaOps Core v3.7.0 | |
| **Total Models:** 64 (Core only) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/SCHEMA-REFERENCE.md` around lines 5 - 7, The schema header in
docs/SCHEMA-REFERENCE.md is out of sync: replace the header line "Source:
FilaOps Core v3.6.0" with "Source: FilaOps Core v3.7.0" so the document
accurately reflects the included 3.7.0 schema additions (e.g., close-short
artifacts); locate the header block containing "**Generated:**", "**Source:**
FilaOps Core v3.6.0", and "**Total Models:**" and update the Source version
string accordingly.
| Admins can edit line quantities and remove lines on orders in **pending**, **confirmed**, **in_production**, or **on_hold** status. | ||
|
|
There was a problem hiding this comment.
Editable status list overstates line-removal eligibility.
Line 455 includes pending, but server-side line removal is documented/implemented for confirmed, in_production, and on_hold (see backend/app/api/v1/endpoints/sales_orders.py:850-871 and backend/app/services/sales_order_service.py:1367-1435). This mismatch will send admins on a UI scavenger hunt for buttons that won’t exist.
Suggested wording adjustment
-Admins can edit line quantities and remove lines on orders in **pending**, **confirmed**, **in_production**, or **on_hold** status.
+Admins can edit line quantities and remove lines on orders in **confirmed**, **in_production**, or **on_hold** status.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Admins can edit line quantities and remove lines on orders in **pending**, **confirmed**, **in_production**, or **on_hold** status. | |
| Admins can edit line quantities and remove lines on orders in **confirmed**, **in_production**, or **on_hold** status. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/user-guide/orders.md` around lines 455 - 456, The docs incorrectly state
that admins can remove lines in "pending" — server-side removal is implemented
only for confirmed, in_production, and on_hold (see sales_orders endpoint and
sales_order_service implementations); update the sentence in the user-guide to
remove "pending" from the list (or split into two clauses clarifying that
quantity edits may be allowed in pending but line removal is limited to
confirmed, in_production, and on_hold) so the doc matches the backend behavior.
| - The order has more than one line | ||
| - The line has not been shipped | ||
| - No active production orders are linked to that line | ||
|
|
||
| Click **✕** → confirm the prompt → the line is removed and totals recalculate automatically. | ||
|
|
||
| > **Note**: If a production order exists for the line, cancel it first before removing the line. | ||
|
|
There was a problem hiding this comment.
“No active production orders” is too weak for actual guard behavior.
Lines 471 and 475 imply only active POs block removal, but backend logic blocks removal when any non-cancelled PO exists for the line (including completed/closed states in current service comments). The guide should match that stricter rule to avoid false expectations.
Suggested wording adjustment
-- No active production orders are linked to that line
+- No non-cancelled production orders are linked to that line
...
-> **Note**: If a production order exists for the line, cancel it first before removing the line.
+> **Note**: Line removal is blocked if any non-cancelled production order exists for that line.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - The order has more than one line | |
| - The line has not been shipped | |
| - No active production orders are linked to that line | |
| Click **✕** → confirm the prompt → the line is removed and totals recalculate automatically. | |
| > **Note**: If a production order exists for the line, cancel it first before removing the line. | |
| - The order has more than one line | |
| - The line has not been shipped | |
| - No non-cancelled production orders are linked to that line | |
| Click **✕** → confirm the prompt → the line is removed and totals recalculate automatically. | |
| > **Note**: Line removal is blocked if any non-cancelled production order exists for that line. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/user-guide/orders.md` around lines 469 - 476, The docs text currently
says "No active production orders" which understates the backend guard (it
blocks removal if any non-cancelled production order exists, including
completed/closed states); update the wording in the order line removal section
by replacing the phrase "No active production orders" with "No non-cancelled
production orders (including completed/closed)" and change the note "If a
production order exists for the line, cancel it first before removing the line."
to explicitly state "If any non-cancelled production order (including
completed/closed states) exists for the line, cancel it first before removing
the line." so the guide matches the stricter backend behavior.
Summary
Docs changes
API-REFERENCE.mdSCHEMA-REFERENCE.mdMIGRATIONS-LOG.mdFEATURE-CATALOG.mduser-guide/orders.mduser-guide/production.mdworkflows/quote-to-cash.md496-architecture-review.md🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes – v3.7.0
New Features
Bug Fixes
Documentation