Prevent sampleless speaker identities
PR and Push Build/Test / build-and-test (push) Successful in 8m38s

This commit is contained in:
2026-06-02 10:39:00 +02:00
parent a3bad1bdd4
commit e3f4e87319
10 changed files with 101 additions and 50 deletions
@@ -24,9 +24,9 @@ The rules editor `write_rules` tool SHALL replace the whole configured workflow
The rules editor `write_rules` tool SHALL refuse invalid YAML, unsupported workflow rule shape, or workflow step Razor templates that fail against the workflow template model without changing the configured workflow rules file and SHALL return enough detail for the agent to fix and retry.
The settings/logs agent SHALL receive speaker identity tools to search/list, read, create, update, delete, and merge identities in the local speaker identity database.
The settings/logs agent SHALL receive speaker identity tools to search/list, read, update, delete, and merge identities in the local speaker identity database, and a create tool that refuses sampleless identity creation with an actionable response.
The settings/logs agent SHALL receive speaker sample tools to list, read, delete, and queue playback of samples linked to identities.
The settings/logs agent SHALL receive speaker sample tools to list, read, delete, and queue playback of samples linked to identities. The delete sample tool SHALL refuse to delete the last remaining sample for an identity.
The settings/logs agent SHALL receive tools to read the local appsettings configuration file, write a complete valid JSON replacement for that file, read Meeting Assistant configuration documentation, read current or rotated application log files by tail or 1-based line range, search current or rotated application log files, search copied OpenSpec specification files, and read copied OpenSpec specification files by relative path and optional 1-based line range.
@@ -125,8 +125,10 @@ Meeting Assistant SHALL provide a diagnostic endpoint that opens the settings/lo
#### Scenario: Rules editor can manage speaker identities
- **GIVEN** the speaker identity database contains speaker identities and samples
- **WHEN** the rules editor agent runs
- **THEN** it can search, read, create, update, delete, and merge speaker identities
- **THEN** it can search, read, update, delete, and merge speaker identities
- **AND** sampleless identity creation is refused with an actionable response
- **AND** it can list, read, delete, and queue playback of identity samples
- **AND** deleting the last sample for an identity is refused
#### Scenario: User sends a rules-editing chat turn
- **GIVEN** the settings/logs editor chat window is open
@@ -13,6 +13,7 @@
- [x] 2.7 Cover settings/logs recent-summary listing and meeting artifact read/search tools.
- [x] 2.8 Cover settings/logs meeting artifact write/frontmatter repair tools and in-process diagnostic tool availability.
- [x] 2.9 Cover summary frontmatter copying clean, distinct meeting projects.
- [x] 2.10 Cover speaker identity tools refusing sampleless identity creation and last-sample deletion.
## 3. Implementation
- [x] 3.1 Add app-owned temp-file logging with four older rotated files.
@@ -24,3 +25,4 @@
- [x] 3.7 Add settings/logs tools for recent summaries and summary/transcript/note/context read/search.
- [x] 3.8 Add settings/logs tools for summary/transcript/note/context writes, frontmatter repair, and diagnostics that previously required HTTP.
- [x] 3.9 Normalize copied meeting projects when writing summary frontmatter.
- [x] 3.10 Harden speaker identity writes so overrides, creation tools, and sample deletion cannot leave sampleless identities.