feat(notes): add_note MCP tool with a per-day agent cap
Agents can write into the user's daily notes, but only within limits: max 10 agent notes a day, max 500 characters, add only — no edit, no delete. A new from_agent column separates their lines from the user's so the cap counts the right ones and the UI can mark them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
cf093e3178
commit
ae0c7d3771
@@ -970,14 +970,25 @@ public sealed class WorkerHub : Microsoft.AspNetCore.SignalR.Hub
|
||||
{
|
||||
using var ctx = _dbFactory.CreateDbContext();
|
||||
var notes = await new DailyNoteRepository(ctx).ListByDayAsync(Day(dayIso));
|
||||
return notes.Select(n => new DailyNoteDto(n.Id, n.Date.ToString("yyyy-MM-dd"), n.Text, n.SortOrder)).ToList();
|
||||
return notes.Select(Dto).ToList();
|
||||
}
|
||||
|
||||
/// <summary>Both ends inclusive — the editor loads today plus its recent history in one call.</summary>
|
||||
public async Task<List<DailyNoteDto>> GetDailyNotesBetween(string startIso, string endIso)
|
||||
{
|
||||
using var ctx = _dbFactory.CreateDbContext();
|
||||
var notes = await new DailyNoteRepository(ctx).ListBetweenAsync(Day(startIso), Day(endIso));
|
||||
return notes.Select(Dto).ToList();
|
||||
}
|
||||
|
||||
private static DailyNoteDto Dto(Data.Models.DailyNoteEntity n) =>
|
||||
new(n.Id, n.Date.ToString("yyyy-MM-dd"), n.Text, n.SortOrder, n.FromAgent);
|
||||
|
||||
public async Task<DailyNoteDto> AddDailyNote(string dayIso, string text)
|
||||
{
|
||||
using var ctx = _dbFactory.CreateDbContext();
|
||||
var n = await new DailyNoteRepository(ctx).AddAsync(Day(dayIso), text);
|
||||
return new DailyNoteDto(n.Id, n.Date.ToString("yyyy-MM-dd"), n.Text, n.SortOrder);
|
||||
return Dto(n);
|
||||
}
|
||||
|
||||
public async Task UpdateDailyNote(string id, string text)
|
||||
|
||||
Reference in New Issue
Block a user