Skip to content

chore(main): release 0.1.0 - #542

Merged
mforce merged 1 commit into
mainfrom
release-please--branches--main--components--cluckwork
Sep 12, 2026
Merged

mforce merged 1 commit into
mainfrom
release-please--branches--main--components--cluckwork

Conversation

@cluckwork-lockfix

@cluckwork-lockfix cluckwork-lockfix Bot commented Aug 16, 2026 •

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

0.1.0 (2026-09-12)

⚠ BREAKING CHANGES

Features

  • accounts: add Account.Slug (farm code), suspend/reactivate, list-accounts verb (#531) (3fe9754)
  • accounts: provision additional farms (#581) (006f298)
  • add Aspire local development AppHost (#567) (2c9e6b9)
  • add configurable worker sale allocation (#619) (0955095)
  • add searchable entity pickers (#642) (60d2053)
  • api: provision-account takes an optional --timezone at creation (#603) (#694) (a0aee39)
  • audit: show the sales-line audit payload as a readable Details column (#745) (#749) (d26d389)
  • auth: add ApplicationUser.StepUpLogoutEpoch column (#338) (#554) (18306ee)
  • certify over-cap simulation fixture bands (#633) (a67b2e1), closes #627
  • cli: rename-account verb to change a farm code (#732) (#733) (4b70559)
  • customers: edit existing customer details (#625) (#626) (062a55c)
  • jobs: single-runner leader gate for the durable job worker (#271) (#555) (4148f9b)
  • let owners change user email addresses (#605) (842347b)
  • log in by farm code, with per-account email identity (#532) (#564) (68adb62)
  • ratelimit: distributed IP-keyed auth limiters (#544) (#558) (ec14972)
  • ratelimit: distributed per-account report concurrency cap with local-ceiling fallback (#545) (#559) (1522e4e)
  • sales: mark discounted lines, total the discount, and show it in the Orders list (#723, #724) (#741) (1a07441)
  • sales: record list, old and new price in the order-line audit payload (#722) (#742) (97c866f)
  • sales: refuse an over-ceiling confirm from a Sales user (#727) (#766) (8c0792a)
  • sales: show what each order still owes, and filter the list to unpaid (#771) (ca59d68)
  • sales: snapshot the list price on the order line and show the discount (#734) (cffed5e)
  • sales: snapshot the product name and unit in the order-line audit payload (#747) (#748) (0481c06)
  • scope Worker reads to assigned flocks (#388) (#611) (5884a9a)
  • shared-state ports with Redis + in-process fallback (#543) (#552) (f767fa9)
  • suspend-account / reactivate-account operator verbs (#534) (#573) (d0be26c)
  • tenancy: write-side tenant guard + single-assignment TenantContext (#546) (#561) (f371f1d)
  • web: dashboard rework — capture-status tiles, 14-day trend, stock as a stacked bar (#654) (396ba23)
  • web: date-range filters on audit and expenses, and the stock lot filter gets its bounded toolbar (#666, #667, #653) (94b188f)
  • web: elevation hierarchy and sentence-case labels (#651, #652) (#661) (28db4c7)
  • web: Expenses and Audit keep a clear-filters control while rows are still showing (#679) (#697) (b859982)
  • web: expenses filters by a date range like its sibling screens (#667) (f13858f)
  • web: key the farm brand palette per farm (#586) (#600) (7183a43)
  • web: let operators forget remembered farms (#598) (577d94e)
  • web: one-line provenance, bounded date filters, and empty states that invite action (#653, #655) (#668) (80b53f4)
  • web: prefill the farm code from ?farm= and remember it (#535) (#588) (b7f5cc6)
  • web: split authenticated routes into lazy chunks (#620) (5089271)
  • web: the audit log filters by a date range, and says which window is empty (#666) (63027e0)
  • web: typeset numbers as numbers and refresh the Help glossary (#650, #657) (af4fe11)

Bug fixes

  • api: order same-instant audit events by a durable monotonic key (#700) (8fcf084)
  • api: print the farm code from bootstrap-admin (#589) (#594) (34032ac)
  • audit: show the price a line sold for, not its list price (#759) (e6b37d0)
  • audit: store catalog enums by name and guard the add-item transaction shape (#751) (23609ff)
  • auth: reject invalid account claims (#622) (8d6c7fe)
  • auth: require step-up for durable user access (#360) (#607) (f767dce)
  • ci: bound the npm audit calls and give the web job room to finish (#686) (153b7a8)
  • ci: escalate the audit bound to SIGKILL, so it actually bounds (#686) (a0c8f4e)
  • ci: fail closed on invalid vulnerability config (#621) (1690db8)
  • ci: lockfix covers the two AppHost lock files, derived from the sln (efb05e6)
  • ci: lockfix covers the two AppHost lock files, derived from the sln (8986d77)
  • ci: remove invalid XML comment from nuget.lockfix.config (#541) (5f1bc0a)
  • ci: the advisory vuln gate no longer blocks on an unusable report (#686) (aaf6934)
  • ci: the advisory vuln gate no longer blocks on an unusable report (#686) (64f1f53)
  • i18n: tl help text names the saleable flag and unit-system setting what their labels call them (#688) (#696) (bfd24d7)
  • infra: AccountId must be a non-nullable Guid or both tenant write layers refuse (#673) (#695) (2470c4e)
  • require step-up for flock scope changes (#609) (4151f89)
  • sales: keep a line's discount markers agreeing while its price is edited (#752) (#753) (c159b4b)
  • sales: say which kind of missing list price a line has (#774) (489180e)
  • scope legacy logout to selected farm (#624) (fae8d82)
  • seed: drain the daily-entry lock sweep so deep simulation fixtures validate (#644) (730fa23), closes #638
  • tenancy: AccountId is a concurrency token, so the database refuses a detached cross-tenant write (#562) (4d1dfa3)
  • tenancy: AspNetUserRoles carries a tenant column, so a role write naming another farm's user is refused (#670) (fc0552a)
  • tests: bump the image-pin allow-list counts for the AppHost LocalPorts tests (#593) (58d3056)
  • tests: the OTLP collector survives a lost port race and ignores traffic that is not an export (#672, #676) (#677) (965c737)
  • web: a scoped audit view filtered to nothing names both the record and the range (#666) (41bbfe1)
  • web: an abandoned dialog attempt's success no longer hijacks the replacement on Customers, Daily Entry, Flocks, Grades and Products (#703) (#705) (85605db)
  • web: an abandoned dialog attempt's success no longer hijacks the replacement on Inventory, Expenses, History and Stock (#703) (#706) (60a4997)
  • web: an abandoned edit's success no longer hijacks the dialog that replaced it on Users (#703) (#710) (778faab)
  • web: an abandoned order attempt's success no longer hijacks the dialog that replaced it (#702) (522c699)
  • web: capture screens open on the flock you last used, and assigning one no longer guesses (#646) (#699) (7f8f317)
  • web: constrain dialog session helpers to declared scopes (#715) (389e3c8)
  • web: date validation gets one boundary table instead of one case per review round (#666) (215f830)
  • web: keep a paged window and an item panel on the user's newest intent (#645) (d81bccf)
  • web: keep Sales order panels closed after pending writes (#711) (f0f7492)
  • web: keep Sales panels closed after pending Open reads (#716) (620411f)
  • web: make login take the cross-tab cookie lock so a racing refresh cannot restore the wrong session (#648) (ff18beb)
  • web: make the entity picker read as a search field and focus it on open (#736) (66ef667), closes #735
  • web: page truncated customer and movement tables with usePagedList (7cfe4d6)
  • web: reconcile Sales line edits with refreshed orders (#717) (d7dd2c9)
  • web: the audit date filter accepts low-numbered years, and its empty state covers every narrowing (#666) (af52d25)
  • web: the audit date filter rejects impossible dates, and its history guard actually guards (#666) (8d51846)
  • web: the expense range bounds are not capped at today, which the month-end default exceeds (#667) (7e01864)
  • web: the help text calls the expiry field what the field calls itself (#666) (2fd1f3c)
  • web: the stock lot date range sits in the bounded toolbar (#653) (43dec5e)

Refactoring

  • web: extract SalesPage's dialog-write wrapper into a shared useDialogAction hook (#703) (#704) (60ee9d9)

Documentation

  • add k6 preparation steps to the dev-database fixture runbook (#643) (a4f1f09)
  • add runbook for loading the simulation fixture into a dev database (#639) (2d143b8)
  • agents: a PR closes its issue from the body, not the title (#744) (39be13c)
  • agents: drop the commit and push gate, and require screenshots on UI changes (#757) (6225172)
  • agents: find guards by grepping registry readers; amend issues a PR overtakes (#580) (fe3fde8)
  • agents: the Playwright specs have been in CI since 2026-08-08 (#768) (68ee612)
  • aspire: record the second local database and pin the AppHost dashboard ports (#623) (713b941)
  • compress AGENTS.md to one paragraph per rule, and draw the two orders that matter (#551) (997ae8a)
  • item 7 names each screen's actual initial filter value (#666) (70a53d8)
  • multi-farm tenancy decision record and AGENTS/GLOSSARY sync (#537) (#601) (2c34771)
  • name the scoped filtered-empty key and state the #653 relationship plainly (#666) (0e93dac)
  • note that a PackageReference in Directory.Build.props is invisible to the dependency graph (4845724)
  • plans: commit the #722 and #745 design records (#754) (c942fcd)
  • record #579 as won't-fix — suspension is immediate for use, not issuance (#582) (7a3be40)
  • record the #508 audit ordering key and the tracked-file guard lesson (#701) (08964e9)
  • runbooks: add procedure to rename the default farm's code after upgrade (#731) (2f6e242)
  • screenshots of the running SPA in the README (#550) (711488a)
  • sim: commit the dashboard screenshot, capture the palette matrix, and record the #651/#652 conventions (#660, #662, #663, #664) (#665) (930ea30)
  • specify searchable entity picker (#641) (91d4300)
  • split the README into audience-scoped docs and adopt repo-template scaffolding (#548) (b3f3fcf)
  • surface Aspire local development workflow (#568) (a343baa)
  • web: record the per-screen idempotency-key policies and runWrite's refresh contract (#703) (#707) (8bee651)
  • web: the date-cap help text covers every stocked item, not only feed (#666, #667) (c8433c5)
  • web: the help text claims only what is true of recording, and says nothing about filter caps (#666, #667) (e2f63d1)
  • web: the help text describes the date-range filters that shipped (#666, #667) (c3275b7)
  • web: the help text stops describing a cap the filters no longer have (#666, #667) (49654cd)

This PR was generated with Release Please. See documentation.

@cluckwork-lockfix
cluckwork-lockfix Bot force-pushed the release-please--branches--main--components--cluckwork branch 10 times, most recently from d2eea06 to 37ce0e4 Compare August 20, 2026 19:43
@cluckwork-lockfix cluckwork-lockfix Bot changed the title chore(main): release 0.0.5 chore(main): release 0.1.0 Aug 20, 2026
@cluckwork-lockfix
cluckwork-lockfix Bot force-pushed the release-please--branches--main--components--cluckwork branch 17 times, most recently from aeabd8b to 175e85a Compare August 27, 2026 06:07
@cluckwork-lockfix
cluckwork-lockfix Bot force-pushed the release-please--branches--main--components--cluckwork branch from 175e85a to 3b6b15c Compare August 28, 2026 18:12
@cluckwork-lockfix
cluckwork-lockfix Bot force-pushed the release-please--branches--main--components--cluckwork branch 26 times, most recently from b928f86 to 8e628bd Compare September 7, 2026 14:20
@coderabbitai

coderabbitai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 9060b54e-ba2d-41fb-8592-ef5444317527

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@cluckwork-lockfix

Copy link
Copy Markdown
Contributor Author

🤖 Created releases:

🌻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment