Update meeting summary agent UI

This commit is contained in:
2026-07-01 10:30:28 +02:00
parent 4787bf8cec
commit 92e359646b
18 changed files with 731 additions and 101 deletions
+39 -11
View File
@@ -229,6 +229,10 @@ A `speaker_identified` trigger MAY filter by speaker name.
A `transcript_line` trigger MAY filter by speaker name.
Workflow rule execution SHALL log each triggered rule with its rule name and event type.
Workflow rule execution SHALL log rule failures with the rule name and event type.
#### Scenario: State transition rule matches from and to
- **GIVEN** a configured rule that triggers on a state transition from `collecting metadata` to `transcribing`
- **WHEN** Meeting Assistant transitions that meeting from `collecting metadata` to `transcribing`
@@ -241,11 +245,19 @@ A `transcript_line` trigger MAY filter by speaker name.
- **WHEN** Meeting Assistant identifies speaker `Ada`
- **THEN** it applies the rule steps
#### Scenario: Transcript line rule rewrites masked profanity before persistence
#### Scenario: Transcript line rule rewrites masked profanity after durable append
- **GIVEN** a configured rule that triggers on transcript line writes and sets `transcript.line` by replacing `*****` with `[redacted]`
- **WHEN** Meeting Assistant writes a transcript line for speaker `Guest-1` containing `*****`
- **THEN** the written transcript line contains `[redacted]`
- **AND** the written transcript line does not contain `*****`
- **THEN** Meeting Assistant first appends the original formatted line to the transcript file
- **AND** rewrites that written line to contain `[redacted]`
- **AND** the final written transcript line does not contain `*****`
#### Scenario: Transcript line workflow failure keeps transcript writing
- **GIVEN** a configured transcript line workflow rule fails while processing a transcript line
- **WHEN** Meeting Assistant receives that live transcript segment
- **THEN** Meeting Assistant keeps the original formatted line in the transcript file
- **AND** logs the workflow rule failure
- **AND** continues processing later transcript segments
### Requirement: Meeting automation rules support conditions and steps
Meeting Assistant SHALL support rule conditions using an expression engine.
@@ -254,6 +266,8 @@ Rules SHALL support nested `and`, `or`, and `not` condition groups.
Step values SHALL support Razor syntax against the current meeting event model.
Rendered step values SHALL be treated as plain UTF-8 text for markdown artifacts and SHALL NOT persist Razor HTML entity encoding.
Step values SHALL treat `@` characters inside valid email address tokens as literal text rather than Razor transitions.
Meeting Assistant SHALL expose the formatted transcript line and transcript speaker to `transcript_line` rule conditions and Razor step templates.
@@ -290,6 +304,12 @@ The `set_property` step SHALL support setting `transcript.line` during `transcri
- **WHEN** the rule runs
- **THEN** Meeting Assistant renders the Razor expression and preserves the email address as literal text
#### Scenario: Razor-rendered transcript line preserves UTF-8 text
- **GIVEN** a configured `transcript_line` rule uses Razor to replace part of a transcript line containing `heißt`, `Schimpfwörter`, and `nächstes`
- **WHEN** the rule changes `transcript.line`
- **THEN** the resulting transcript line contains the original UTF-8 characters
- **AND** does not contain HTML entities such as `ß`, `ö`, or `ä`
#### Scenario: Rule can clean a meeting title
- **GIVEN** a configured state-transition rule that matches a title containing a configured marker
- **WHEN** the rule runs
@@ -298,18 +318,19 @@ The `set_property` step SHALL support setting `transcript.line` during `transcri
#### Scenario: Transcript line conditions can use the written line and speaker
- **GIVEN** a configured `transcript_line` rule with conditions over `transcript.line` and `transcript.speaker`
- **WHEN** Meeting Assistant writes a transcript line that matches both conditions
- **THEN** it applies the rule steps before the line is persisted
- **THEN** Meeting Assistant applies the rule steps after the original formatted line is durably appended
- **AND** rewrites the written line if a rule changes `transcript.line`
### Requirement: Workflow rules and speaker identities can be edited through a tray-launched assistant
Meeting Assistant SHALL expose an `Edit rules and identities` item from the tray icon menu.
Meeting Assistant SHALL expose an `Open agent` item from the tray icon menu.
The tray icon SHALL be implemented through the Uno notification icon stack.
The tray icon menu SHALL show every configured launch profile when recording can be started and SHALL include each profile's configured toggle hotkey in the corresponding start or switch menu item.
When the user selects `Edit rules and identities`, Meeting Assistant SHALL open a basic MewUI chat window for editing the configured workflow rules file and speaker identities.
When the user selects `Open agent`, Meeting Assistant SHALL open a basic MewUI chat window for editing the configured workflow rules file and speaker identities.
The chat window SHALL be titled `Edit rules and identities`, SHALL display user and assistant messages as visually distinct cards, SHALL display basic markdown emphasis, inline code, fenced code blocks, pipe tables rendered as grid views, and line breaks in agent responses, SHALL display a plain `Thinking...` line while the agent is working, MAY replace that line with `Reconnecting...` while retrying a transient agent request, SHALL provide a multiline text input at the bottom with placeholder text for asking to make a rule or list identities, SHALL send on Enter, SHALL insert a newline on Shift+Enter, and SHALL provide an explicit Send button.
The chat window SHALL be titled `Meeting Summary Agent`, SHALL display user and assistant messages as visually distinct cards, SHALL display basic markdown emphasis, inline code, fenced code blocks, pipe tables rendered as grid views, and line breaks in agent responses, SHALL display lightweight visible reasoning summary lines and tool-call lines that include only the called tool name while the agent is working, SHALL display a plain `Thinking...` line as the bottom activity line while the agent is working, MAY replace that bottom line with `Reconnecting...` while retrying a transient agent request, SHALL replace per-turn activity after completion with a collapsible `Worked for <duration>` expander between the user and assistant cards, SHALL show visible reasoning summary lines, tool-call lines, and status lines in order inside the expander when expanded, SHALL collapse those details again when the expander is closed, SHALL provide a multiline text input at the bottom with placeholder text for asking to make a rule or list identities, SHALL send on Enter, SHALL insert a newline on Shift+Enter, and SHALL provide an explicit Send button.
When a new chat message or thinking state is appended, the chat window SHALL scroll to the bottom of the newly rendered content if the conversation was already near the bottom or did not need scrolling before the append.
@@ -335,8 +356,8 @@ Meeting Assistant SHALL provide a diagnostic endpoint that opens the workflow ru
#### Scenario: Tray menu opens the editor
- **WHEN** the user opens the tray icon menu
- **THEN** the menu includes `Edit rules and identities`
- **WHEN** the user selects `Edit rules and identities`
- **THEN** the menu includes `Open agent`
- **WHEN** the user selects `Open agent`
- **THEN** Meeting Assistant opens the workflow rules and identities editor chat window
#### Scenario: Tray menu shows configured profile hotkeys
@@ -385,9 +406,16 @@ Meeting Assistant SHALL provide a diagnostic endpoint that opens the workflow ru
- **GIVEN** the rules editor chat window is open
- **WHEN** the user types a prompt and presses Enter
- **THEN** the user message appears in the conversation
- **AND** a plain `Thinking...` line appears while the agent is running
- **AND** a plain `Thinking...` line appears at the bottom while the agent is running
- **WHEN** the agent emits visible reasoning summaries or calls tools
- **THEN** lightweight activity lines appear above the bottom activity line with the visible reasoning summary text or only the called tool names
- **WHEN** the agent turn completes
- **THEN** the activity is represented between the user and assistant cards as a collapsed `Worked for <duration>` expander
- **AND** expanding it shows the visible reasoning summary, status, and tool-call lines in order
- **AND** collapsing it hides those details again
- **AND** if no visible reasoning summary was emitted, the expander includes the fallback `Thinking...` line
- **AND** the first model request for that turn is marked as user-initiated
- **AND** the final assistant response replaces the thinking line
- **AND** the final assistant response replaces the live activity lines
#### Scenario: Rules editor displays agent request failures
- **GIVEN** the rules editor chat window is open