Skip to content

feat(meetings): add the v2 meeting header and badge row - #3283

Merged
nunoeufrasio merged 4 commits into
feat/meeting-details-v2from
feat/issue-1772
Oct 6, 2026
Merged

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

Conversation

@nunoeufrasio

Copy link
Copy Markdown
Contributor

Stacked on #3272 (E1-02). The base is feat/issue-1771, so this diff shows only E1-03. Once #3272 merges, this PR is rebased and retargeted to feat/meeting-details-v2.

Summary

E1-03: the prototype's meeting header on the V2 page.

  • Project context: logo, project name and foundation. It opens the foundation overview in a new tab after setting the foundation context, as V1's context chips do, and it says so to screen readers.

  • Title as the page h1.

  • Badge row, built on the lfx-tag wrapper with V2 tokens (25px chips):

    • Recurring and the meeting type (no chip when the type is None);
    • committee chips linking /groups/{uid} in a new tab;
    • Recording, Transcripts, YouTube Upload and AI Summary.

    E1-05's status pill and E1-04's privacy chip will take the front of the row.

  • Feature badges come from the *_enabled flags alone, so they show at the reduced past-access tier too (FR-041).

    • They describe what the meeting was configured to capture, not that an artifact exists.
    • This deliberately differs from V1, which badges a past-id load's Recording only once a recording URL resolves; E4-01 owns showing or explaining the artifact itself.
  • Copy link, as V1: the meeting link, including the password when the payload carries one, with a confirmation toast. FR-050 keeps copy link.

  • New token --md-feature-ai for the AI icon (non-text), with a dark value and its own "Feature (non-text)" deviation section.

Scope moved out, with owners

Test plan

  • 13 header specs: project link and fallbacks, server guard, None type, committees, feature flags, copy link. The meetings suite passes: 763 tests.
  • yarn lint:check, yarn check-types, yarn build (SSR), ./check-headers.sh, yarn format:check
  • Visual check against the prototype (gate forced locally; that change was never committed). The project link, title and badge row land on the prototype's y positions (133 / 185 / 242), and chip height is pinned to the prototype's 25px.
  • Pre-PR review (general, knowledge base, repo conventions); all findings are fixed in the second commit.

Closes #1772
Refs #1765, #3272, #1774, #1775

Targets the integration branch (via #3272); ships to main only via #3249.

🤖 Generated with Claude Code

@nunoeufrasio
nunoeufrasio requested a review from a team as a code owner October 5, 2026 16:23
@nunoeufrasio
nunoeufrasio requested review from MRashad26 and dealako and a balanced review from Copilot October 5, 2026 16:23
@nunoeufrasio nunoeufrasio self-assigned this Oct 5, 2026
@cursor

cursor Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
UI-only V2 feature behind the meeting-details flag; copy-link and foundation navigation reuse existing services with SSR guards and broad unit test coverage.

Overview
E1-03 replaces the meeting details V2 placeholder title with a dedicated lfx-meeting-header component wired into the ready state of meeting-details-page.

The header adds project context (logo, name, foundation) with an optional control that sets foundation context and opens /foundation/overview in a new tab (browser-only; plain display when the parent foundation cannot be resolved). It shows the meeting title as the page h1, a wrapping badge row (lfx-tag + V2 chip styling) for recurring, meeting type (hidden for None), committee links to /groups/{uid}, and feature chips driven only by *_enabled flags (Recording, Transcripts, YouTube, AI Summary)—aligned with FR-041 and differing from V1’s artifact-gated recording badge. A copy link button uses ClipboardShareService, including ?password= when present (FR-050).

Supporting changes: shared MeetingCommitteeLink, new --md-feature-ai token (light/dark) and deviation docs, expanded testid-contract.md header selectors, and traceability tweaks (E1-03 → FR-041/FR-050; timezone skeleton and “Organized by” deferred to E1-06 / E2-01). 13 unit tests cover foundation fallbacks, SSR guards, committees, recurrence, and copy behavior; the page spec stubs the new component.

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

@coderabbitai

coderabbitai Bot commented Oct 5, 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: 8edfd6d1-2ec8-499a-af53-2dc86d51facc

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 5, 2026 •

Copy link
Copy Markdown
Contributor

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


Hi @nunoeufrasio, thanks for this PR. The header is a clean, well-scoped slice of E1-03. The component follows the existing patterns: SSR-guarded window.open, noopener,noreferrer on external opens, a token-driven chip style, and a clear doc comment explaining why feature badges differ from V1. The copy-link behaviour matches V1 and the new token is documented in the deviations file. The spec coverage you list covers the main branches.

⚪ Nit: 1 issue: Encode the committee uid in the href

✅ 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.

Approved: no blocking, privacy or security findings; one nit inline.


Generated by Claude Code

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

Header behavior still needs corrections for foundation context, past recurrence, clipboard failure feedback, and narrow-screen overflow.

Review effort: Balanced
Findings: 4 Medium severity

Open (4)
What changed in this PR

Adds the E1-03 header to the flag-gated meeting details V2 page, leaving V1 unchanged.

Changes:

  • Adds project context, title, meeting and feature badges, and copy-link functionality.
  • Integrates the header with component tests and scoped AI-icon colors.
  • Updates documentation and requirement ownership for deferred rail content.
File Description
specs/​011-meeting-details-redesign/​v2-scaffold.md Records tag-wrapper reuse.
specs/​011-meeting-details-redesign/​testid-contract.md Defines header test identifiers.
specs/​011-meeting-details-redesign/​requirements.md Updates requirement ownership.
specs/​011-meeting-details-redesign/​design-token-deviations.md Documents AI-icon colors.
apps/​lfx-one/​src/​app/​modules/​meetings/​meeting-details-page/​meeting-details-page.tokens.scss Adds light and dark AI tokens.
apps/​lfx-one/​src/​app/​modules/​meetings/​meeting-details-page/​meeting-details-page.component.ts Imports the header component.
apps/​lfx-one/​src/​app/​modules/​meetings/​meeting-details-page/​meeting-details-page.component.spec.ts Tests header integration.
apps/​lfx-one/​src/​app/​modules/​meetings/​meeting-details-page/​meeting-details-page.component.html Replaces the placeholder header.
apps/​lfx-one/​src/​app/​modules/​meetings/​meeting-details-page/​components/​header/​header.component.ts Implements header behavior.
apps/​lfx-one/​src/​app/​modules/​meetings/​meeting-details-page/​components/​header/​header.component.spec.ts Tests rendering and interactions.
apps/​lfx-one/​src/​app/​modules/​meetings/​meeting-details-page/​components/​header/​header.component.html Renders context, badges, and copy control.

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

@nunoeufrasio nunoeufrasio mentioned this pull request Oct 5, 2026
3 tasks done
Copilot AI balanced review requested due to automatic review settings October 6, 2026 00:06

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

🟢 Approval recommended

Only non-blocking styling feedback remains; no unresolved functional or security blockers were identified.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
Resolved since last review (4)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit fb91cb4. Configure here.

Copilot AI balanced review requested due to automatic review settings October 6, 2026 00:29

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

🟢 Approval recommended

No unresolved blocking issues remain in the scoped V2 header changes, and prior feedback is addressed.

Review effort: Balanced
Findings: None

Resolved since last review (1)

Base automatically changed from feat/issue-1771 to feat/meeting-details-v2 October 6, 2026 00:51
Render the prototype's header on the v2 page: the project context
(logo, name, foundation; opens the foundation overview), the title,
and the badge row - recurrence, meeting type, committee chips linking
to their group pages, and the Recording / Transcripts / YouTube Upload
/ AI summary badges, shown from their flags whatever the viewer's
artifact access. Adds a --md-feature-ai token for the AI icon.

Refs #1772

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>
Add copy link (as v1, password included when the payload has one),
announce that the project link opens a new tab, drop the type chip for
a None meeting type, state that feature badges reflect configuration
rather than artifacts, cover the foundation fallbacks and server guard
in specs, give the AI token its own deviation section, and move the
organizer and timezone criteria to E2-01 and E1-06.

Refs #1772

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>
Encode committee uids in their group links and bound long committee
chips, show Recurring for past occurrences of a series, never mix a
parent uid with the child's name and slug (no link when the parent is
unresolved), and copy through ClipboardShareService so a failed write
reports an error instead of a false success.

Refs #1772

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>
A past record keeps the original uid in meeting_id with a composite id
whether or not it repeats, so the series-uid check badged finished
one-off meetings. Read the recurrence rule of the selected occurrence
or the meeting instead. Theme the copy button with the v2 tokens.

Refs #1772

Signed-off-by: Nuno Eufrásio <nmeufrasio@gmail.com>
@nunoeufrasio
nunoeufrasio merged commit 0cd20a5 into feat/meeting-details-v2 Oct 6, 2026
14 checks passed
@nunoeufrasio
nunoeufrasio deleted the feat/issue-1772 branch October 6, 2026 00:56
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