Skip to content

feat: add adaptive live meeting workspace - #382

Draft
Lob0Garou wants to merge 7 commits into
Natively-AI-assistant:mainfrom
Lob0Garou:agent/adaptive-meeting-workspace
Draft

feat: add adaptive live meeting workspace#382
Lob0Garou wants to merge 7 commits into
Natively-AI-assistant:mainfrom
Lob0Garou:agent/adaptive-meeting-workspace

Conversation

@Lob0Garou

@Lob0Garou Lob0Garou commented Jul 17, 2026

Copy link
Copy Markdown

Summary

  • replace the single cramped meeting feed with an adaptive transcript/copilot workspace
  • show a two-column 42/58 layout when expanded and accessible tabs when compact
  • segment interim and final speech by speaker, keep transcript history bounded, and throttle live-region announcements
  • preserve independent scroll/follow-live state for transcript and copilot panes
  • keep footer controls visible and constrain long prose, URLs, and code to their own panes

UX behavior

  • Compact overlay: keyboard-accessible Ao vivo and Copiloto tabs
  • Expanded overlay: transcript on the left, AI responses on the right
  • Independent navigation: scrolling one pane does not move the other
  • Go live: a paused pane counts unread stable items without changing the saved auto-scroll preference
  • Session reset: clears transcript/workspace state and prevents stale width-animation callbacks from restoring the previous layout
  • Accessibility: speaker labels, status announcements, tab semantics, reduced-motion handling, and bounded live-region output

Review structure

The feature is intentionally split into six focused commits:

  1. bounded transcript and announcement state
  2. independent pane follow-live state
  3. adaptive workspace components
  4. overlay integration and Electron E2E coverage
  5. effect-lifecycle hardening from static review
  6. preservation of repeated finals and removal of out-of-scope machine-specific startup changes

Validation

  • npm run typecheck:electron
  • npm run build
  • npm run build:electron
  • 34 focused state, scroll, announcement, reset, and presentation tests pass
  • Electron Playwright: 6/6 at 100%, 6/6 at 125%, and 6/6 at 150% Windows display scale
  • the timing-sensitive 150% scroll-persistence scenario also passed 3/3 isolated repeats
  • current React Doctor reports no errors; remaining warnings are heuristic/pre-existing or deliberate transition effects
  • git diff --check
  • branch-diff scan found no credentials, local user paths, or sandbox overrides
  • electron/main.ts has no diff in this PR; startup, sandbox, ABI, and audio lifecycle changes are out of scope

Scope note

This is a large but cohesive UI feature. It is opened as a draft and organized into focused commits so maintainers can review the pure state policies before the components and final integration.

evinjohnn and others added 6 commits July 17, 2026 07:44
… Guide (Natively-AI-assistant#380)

Zoom is the one major meeting app whose screen-capture mode setting
must be manually switched to "Advanced capture with window filtering"
for the overlay to stay hidden; Google Meet, Teams, and QuickTime
already honor the stealth flag automatically. Surface this in both the
README FAQ and the in-app Help & Guide (Stealth & Window Control
section) instead of leaving it undocumented.

Co-authored-by: Hardening v2.7 <hardening@natively.software>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Segment interim and final speech updates, bound transcript growth, and throttle accessible live announcements.
Preserve per-pane scroll position and expose explicit follow-live controls for transcript and copilot content.
Introduce responsive transcript and copilot panes with independent navigation, readable segments, and compact overlay controls.
Wire segmented transcript state into the overlay, preserve session reset behavior, and cover the two-column layout across Windows display scales.
Keep render pure, guard session-scoped resets, refresh channel announcement inputs, and preserve explicit layout remeasurement on workspace changes.
@greptile-apps

greptile-apps Bot commented Jul 17, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds an adaptive workspace for live meetings. The main changes are:

  • Speaker-aware transcript segments with bounded history and announcements.
  • Compact tabs and an expanded two-column transcript/copilot layout.
  • Independent scrolling, unread tracking, and follow-live controls.
  • Session-reset and layout-transition handling.
  • Focused state, presentation, and Electron end-to-end tests.

Confidence Score: 5/5

This looks safe to merge.

  • The repeated-utterance loss is addressed by assigning each final its own arrival identity.
  • Tests cover identical repeated finals, partial-to-final transitions, bounded history, and reset behavior.
  • No blocking issue tied to the earlier review findings remains in the updated code.

Important Files Changed

Filename Overview
src/lib/transcriptSegments.mjs Adds bounded speaker-aware transcript state and preserves repeated final utterances.
src/components/NativelyInterface.tsx Integrates transcript events, adaptive panes, scroll restoration, and session resets.
src/components/ui/AdaptiveMeetingWorkspace.tsx Adds compact tabs, split-pane presentation, focus handling, and unread state.
src/lib/tests/transcriptSegments.test.mjs Covers repeated finals, partial transitions, speaker ordering, history limits, and resets.

Reviews (2): Last reviewed commit: "fix: preserve repeated transcript finals" | Re-trigger Greptile

Comment thread electron/main.ts Outdated
Comment thread src/lib/transcriptSegments.mjs Outdated
Remove lossy text-and-time deduplication and strip machine-specific startup and audio changes that do not belong in the adaptive workspace PR.
@Lob0Garou

Copy link
Copy Markdown
Author

Addressed both review findings in 8e685a8. The machine-specific sandbox/ABI/audio hunks were out of scope and are removed entirely (electron/main.ts now has no PR diff). Lossy text/time deduplication was removed so repeated finals such as consecutive 'sim' responses are preserved. Added regression coverage; 34 focused tests, both builds, typecheck, and all 18 Electron display-scale scenarios pass.

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.

2 participants