Skip to content

Promote QA → production (10 commits)#784

Merged
peterdrier merged 10 commits into
nobodies-collective:mainfrom
peterdrier:main
May 20, 2026
Merged

Promote QA → production (10 commits)#784
peterdrier merged 10 commits into
nobodies-collective:mainfrom
peterdrier:main

Conversation

@peterdrier
Copy link
Copy Markdown
Collaborator

Summary

Batched promotion of QA-tested changes from peterdrier/Humans:main to production.

All issue/PR refs are qualified per memory/process/issue-refs-qualified.mdpeterdrier/Humans#NNN for peter-fork PRs, nobodies-collective/Humans#NNN for upstream issues.

Commits

Test plan

  • Rebase merge (each PR is already squashed)
  • CI green on production
  • Verify EF migrations apply cleanly

dependabot Bot and others added 10 commits May 20, 2026 12:16
)

Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 6.0.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](microsoft/TypeScript@v5.9.3...v6.0.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 6.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: Anthropic
  dependency-version: 12.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: coverlet.collector
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…etail (#691)

The duplicate-account Detail page only rendered the conflict-matched
EmailSources subset, so an admin couldn't see each account's complete
email footprint when deciding which to keep.

Surface the full picture per account: the raw User.Email Identity column
plus every UserEmails row (with Primary/Verified/Google/Provider badges).
The data was already loaded via UserInfo; the controller now reuses that
fetch and maps it into the view model. The shared conflicting email stays
in the top "Email Conflict" card, so the dropped EmailSources subset loses
no context.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New IMailerAudience targeting "Humans - Marketing no Ticket": users
who have explicitly opted in to Marketing (UserInfo.MarketingOptedOut
== false, excluding null and true) AND do not hold a ticket in the
active vendor event.

Lets us mail marketing opt-ins who haven't bought a ticket yet
without spamming the ones who already have.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…74.0.4150 (#688)

---
updated-dependencies:
- dependency-name: Google.Apis.CloudIdentity.v1
  dependency-version: 1.74.0.4150
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: dotnet-stryker
  dependency-version: 4.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.58.2 to 1.60.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.58.2...v1.60.0)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.60.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ng opt-ins (#692)

The import pulled the entire MailerLite account, ingesting the non-marketing
lists created two days ago and inflating the marketing universe — a GDPR issue.

- Scope BuildPlanAsync/ApplyAsync to the "Website" group (resolved by name;
  throws if absent so it never silently falls back to whole-account).
- Add ICommunicationPreferenceService.ResetPreferenceAsync — deletes the
  CommunicationPreference row (→ null, distinct from opt-out) + repo
  DeleteByUserAndCategoryAsync. Cache refresh handled by the existing
  UserInfoSaveChangesInterceptor on delete.
- New ResetMarketingFlag outcome: Marketing opt-ins written by the bad import
  (UpdateSource="MailerLiteSync", opted-in, no prior consent — SubscribedAt
  null or >= 2026-05-19T00:01:01Z) on people not in the Website group are
  reset to null. Website members of any status are owned by the import loop
  (active -> opt-in, unsubscribed/bounced -> opt-out), so explicit unsubscribes
  stay opt-out rather than being nulled. Re-checked at commit time.
- Surface the new category in the /Mailer/Admin/Import preview (summary +
  detail) and the result summary + >10% drift guard.

No EF migration (row deletes only).

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(deps): Bump Ical.Net from 5.2.1 to 5.2.2

---
updated-dependencies:
- dependency-name: Ical.Net
  dependency-version: 5.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix(calendar): use RecurrenceRule singular for Ical.Net 5.2.2

Ical.Net 5.2.2 marks RecurringComponent.RecurrenceRules (the plural
collection) [Obsolete], which our warnings-as-errors build promotes to
CS0618, failing both `build` and `code-quality` (dotnet format) on the
dependency-bump PR.

Both call sites only ever added a single pattern, so swap the obsolete
`RecurrenceRules.Add(new RecurrencePattern(...))` for the new singular
`RecurrenceRule = new RecurrencePattern(...)` the obsolete message points to.

- CalendarOccurrenceExpander.cs: recurrence expansion
- CalendarService.cs: COUNT-bounded rule end-time computation

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Peter Drier <peter.drier@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread Directory.Packages.props
<ItemGroup>
<!-- AI/LLM -->
<PackageVersion Include="Anthropic" Version="12.11.0" />
<PackageVersion Include="Anthropic" Version="12.22.0" />
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

WARN — About page not updated after NuGet bumps

memory/process/about-page-license-attribution.md — After any NuGet update, src/Humans.Web/Views/About/Index.cshtml must be updated to reflect the new versions and licenses (AGPL-3.0 attribution requirement).

This PR bumps three production NuGet packages without updating the About page:

  • Anthropic 12.11.0 → 12.22.0
  • Ical.Net 5.2.1 → 5.2.2
  • Google.Apis.CloudIdentity.v1 1.74.0.4030 → 1.74.0.4150

Update Views/About/Index.cshtml to reflect the new versions before merging.

@github-actions
Copy link
Copy Markdown

Reviewed commit 543c884. 1 inline finding posted.

@peterdrier peterdrier merged commit 1adb8b1 into nobodies-collective:main May 20, 2026
8 of 9 checks passed
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