Skip to content

docs(meetings): add the v2 rollout and retirement plan - #3267

Merged
nunoeufrasio merged 4 commits into
feat/meeting-details-v2from
docs/issue-2875
Oct 5, 2026
Merged

nunoeufrasio merged 4 commits into
feat/meeting-details-v2from
docs/issue-2875

Conversation

@nunoeufrasio

Copy link
Copy Markdown
Contributor

Summary

Adds the V2-03 rollout and retirement plan for meeting details V2, and reconciles the spec directory now that the foundation PRs have merged into feat/meeting-details-v2.

Docs only; no runtime change.

Test plan

  • ./check-headers.sh, yarn format:check, yarn lint:check, yarn build
  • markdownlint on specs/011-meeting-details-redesign/*.md
  • Every link in the README contents table resolves

Closes #2875
Refs #1765, #1766

Targets the integration branch feat/meeting-details-v2; ships to main only via #3249.

🤖 Generated with Claude Code

Adds specs/011-meeting-details-redesign/rollout.md for V2-03. It
separates the two controls: the integration branch decides whether the
code is in production at all (nothing reaches main until release PR
#3249), and MEETING_V2_ENABLED_FLAG decides who sees V2 once it is.

Defines eight stages (build, release, internal testers, extended
testers, signed-in percentage, anonymous, soak, retire), each with who
decides and exit criteria. States that the code default never changes
and targeting is the switch. Gives the anonymous plan: a code change
that needs #2920's server-side evaluation, then an anonymous
LaunchDarkly context ramped by percentage. Adds what is measured, a
rollback table, and flag retirement: this page drops its read of the
shared flag, and the flag itself retires only with the composer.

The V1-deletion checklist is filed as #3266. The README's contents
table now lists the files that actually exist.

Refs #2875

Signed-off-by: Nuno Eufrasio <nmeufrasio@gmail.com>
The foundation PRs (#2909, #2910, #2911, #2913, #2914, #2935) now sit
together on feat/meeting-details-v2, so the "pending sibling, not on
main yet" notes they carried are stale. They become plain
cross-references in spec.md, state-matrix.md, data-model.md,
requirements.md, testid-contract.md, v2-scaffold.md and the
meeting-view-model resolver comments.

Also records the newly filed Phase 1 issues (#3250-#3265) in spec.md's
work order and requirements.md's traceability table, and the V1
retirement issue #3266.

Refs #1766

Signed-off-by: Nuno Eufrasio <nmeufrasio@gmail.com>
Make #2920 the stage 4 entry gate rather than a release blocker,
scope R05 and FR-001 to the stages before the anonymous stage, give
the V1 rollback a targeted-revert path, and stop reusing the D-2 label.

Refs #2875

Signed-off-by: Nuno Eufrasio <nmeufrasio@gmail.com>
@nunoeufrasio
nunoeufrasio requested a review from a team as a code owner October 4, 2026 23:25
@nunoeufrasio
nunoeufrasio requested review from MRashad26 and dealako and a balanced review from Copilot October 4, 2026 23:25
@nunoeufrasio nunoeufrasio self-assigned this Oct 4, 2026
@cursor

cursor Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation and comment-only updates; no application runtime, flag gate, or API changes.

Overview
Adds rollout.md (V2-03) as the authoritative plan for shipping meeting details V2: integration branch vs LaunchDarkly targeting, eight stages (build → release #3249 → tester ramps → #2920-gated signed-in percentages → anonymous stage 5 code change → soak → V1 retirement #3266), metrics, rollback, and flag retirement scope.

Reconciles the 011-meeting-details-redesign spec set now that foundation work lives on feat/meeting-details-v2: README contents table and integration-branch note; drops “pending / not on main” language across spec.md, state-matrix.md, testid-contract.md, v2-scaffold.md, and data-model.md; wires Phase 1 issue numbers (#3250–#3266) into spec.md and the requirements.md traceability table; narrows R05 and FR-001 so anonymous visitors stay on V1 only until rollout stage 5 and documents post-hydration flag behavior until #2920.

No behavior change — only comment edits in meeting-view-model.utils.ts / .spec.ts pointing at state-matrix.md without PR references.

Reviewed by Cursor Bugbot for commit e0fd7ba. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: a02a13cf-aa44-4176-8ff6-78f7889af311

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
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

dealako commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

@nunoeufrasio I'm starting review 1 of this pull request now (started 2026-10-04 23:26 UTC). This usually takes a few minutes — I'll update this comment with the summary when I'm done.


Hi @nunoeufrasio, thanks for this one. The eight-stage rollout plan is clear. Keeping the branch (does the code reach production) separate from LaunchDarkly targeting (who sees V2) is the right framing. The cross-reference cleanup is consistent: the stale "pending / not on main" notes are gone, the #3250–#3266 issue numbers are in the traceability table, and R05 and FR-001 are scoped to the stages before stage 5. The only .ts edits are comments. The #2920 dependency is stated the same way in rollout.md and spec.md.

⚪ Nit: 1 issue: awkward line wrap in spec.md

✅ Approved

➡️ This auto-review agent is a preview. Please send feedback to @dealako.

@dealako dealako left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Docs-only change; no blocking, security, or privacy findings. One cosmetic nit inline.


Generated by Claude Code

Comment thread specs/011-meeting-details-redesign/spec.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

The rollout contains contradictory requirements and exit criteria that cannot be satisfied at the anonymous and 100% rollout stages.

Review effort: Balanced
Findings: 3 Medium severity

Open (3)
What changed in this PR

Adds the meeting details V2 rollout, rollback, and V1-retirement plan while reconciling related specifications after foundation work merged.

Changes:

  • Defines eight rollout stages, ownership, metrics, rollback, and retirement.
  • Adds Phase 1 issue traceability and updates anonymous rollout requirements.
  • Removes stale “pending” references from specifications and code comments.
File Description
specs/​011-meeting-details-redesign/​rollout.md Adds the rollout and retirement plan.
specs/​011-meeting-details-redesign/​README.md Updates the specification index.
specs/​011-meeting-details-redesign/​spec.md Reconciles requirements, issues, and related documents.
specs/​011-meeting-details-redesign/​requirements.md Adds issue traceability and anonymous-stage scope.
specs/​011-meeting-details-redesign/​state-matrix.md Updates resolver references.
specs/​011-meeting-details-redesign/​v2-scaffold.md Removes stale pending-sibling notes.
specs/​011-meeting-details-redesign/​testid-contract.md Updates merged type references.
specs/​011-meeting-details-redesign/​data-model.md Updates the view-model reference.
packages/​shared/​src/​utils/​meeting-view-model.utils.ts Refreshes a state-matrix comment.
packages/​shared/​src/​utils/​meeting-view-model.utils.spec.ts Refreshes a state-matrix test comment.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread specs/011-meeting-details-redesign/requirements.md Outdated
Comment thread specs/011-meeting-details-redesign/rollout.md Outdated
Comment thread specs/011-meeting-details-redesign/rollout.md Outdated
Make FR-001 platform-neutral with the signed-in and post-hydration
rules scoped to their stages, limit stage 2 to signed-in states, define
the baseline once a V1 cohort is gone, and re-wrap a spec paragraph.

Refs #2875

Signed-off-by: Nuno Eufrasio <nmeufrasio@gmail.com>
Copilot AI balanced review requested due to automatic review settings October 5, 2026 00:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

The outage guidance incorrectly assumes previously evaluated flags automatically fail back to V1.

Review effort: Balanced
Findings: None

Resolved since last review (3)
Previously missed (1)

In code that hasn't changed since last review

Low severity Fail-closed rule does not handle post-initialization outages

specs/​011-meeting-details-redesign/​rollout.md:22

The fail-closed guarantee is too broad. After an initial successful true evaluation, getBooleanFlag() still consults the initialized client (feature-flag.service.ts:238-257), while stale/error events only refresh or log (:352-358). LaunchDarkly may therefore serve the last cached true value during an outage instead of switching this gate to V1. Scope this rule to initial evaluation, or make explicit post-ready failure handling a rollout prerequisite.

This issue also appears on line 74 of the same file.

@nunoeufrasio
nunoeufrasio merged commit 8eee6fc into feat/meeting-details-v2 Oct 5, 2026
9 checks passed
@nunoeufrasio
nunoeufrasio deleted the docs/issue-2875 branch October 5, 2026 00:30
nunoeufrasio added a commit that referenced this pull request Oct 5, 2026
* docs(meetings): add the v2 rollout and retirement plan

Adds specs/011-meeting-details-redesign/rollout.md for V2-03. It
separates the two controls: the integration branch decides whether the
code is in production at all (nothing reaches main until release PR
#3249), and MEETING_V2_ENABLED_FLAG decides who sees V2 once it is.

Defines eight stages (build, release, internal testers, extended
testers, signed-in percentage, anonymous, soak, retire), each with who
decides and exit criteria. States that the code default never changes
and targeting is the switch. Gives the anonymous plan: a code change
that needs #2920's server-side evaluation, then an anonymous
LaunchDarkly context ramped by percentage. Adds what is measured, a
rollback table, and flag retirement: this page drops its read of the
shared flag, and the flag itself retires only with the composer.

The V1-deletion checklist is filed as #3266. The README's contents
table now lists the files that actually exist.

Refs #2875

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>

* docs(meetings): reconcile v2 spec cross-references after the merge

The foundation PRs (#2909, #2910, #2911, #2913, #2914, #2935) now sit
together on feat/meeting-details-v2, so the "pending sibling, not on
main yet" notes they carried are stale. They become plain
cross-references in spec.md, state-matrix.md, data-model.md,
requirements.md, testid-contract.md, v2-scaffold.md and the
meeting-view-model resolver comments.

Also records the newly filed Phase 1 issues (#3250-#3265) in spec.md's
work order and requirements.md's traceability table, and the V1
retirement issue #3266.

Refs #1766

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>

* docs(meetings): fix rollout plan gating and rollback guidance

Make #2920 the stage 4 entry gate rather than a release blocker,
scope R05 and FR-001 to the stages before the anonymous stage, give
the V1 rollback a targeted-revert path, and stop reusing the D-2 label.

Refs #2875

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>

* docs(meetings): address review feedback on the rollout plan

Make FR-001 platform-neutral with the signed-in and post-hydration
rules scoped to their stages, limit stage 2 to signed-in states, define
the baseline once a V1 cohort is gone, and re-wrap a spec paragraph.

Refs #2875

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>

---------

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>
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.

3 participants