feat(api): one API for curl and MCP, REST reads with keys, origin badge with key name
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m16s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m16s
API keys reach tasks and lists over plain REST too (GET /task-lists, GET /tasks with
status/due filters, PATCH/DELETE /thoughts/{id}, GET /lists, list items), guarded by a route
table; notes and settings stay closed. Rights hold for every access alike (webhook:task also
allows create_task over MCP, tasks:write also task delivery).
Tasks, thoughts and list items record which key created them and which one changed them last
(migration 13 replaces agent_mark; origin stays after the user's own edits and survives the
triage into a list item). OriginBadge shows the key name with a webhook or robot icon, details
on hover and tap, and replaces the Webhook and KI badges everywhere, now also on list items.
Settings: category "API" with rights grouped by tasks, lists and inbox and two tabs
(curl / smart home with a Home Assistant sensor, AI agents over MCP). Docs, help, README and
changelog updated; v0.30.0.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0ca715ba64
commit
b883315914
36 files changed
+1119
-563
No files matched your search
+25
-15
@@ -268,7 +268,17 @@ type Thought struct {
|
||||
SortOrder int `json:"sortOrder"`
|
||||
CreatedAt string `json:"createdAt"`
|
||||
TriagedAt string `json:"triagedAt,omitempty"`
|
||||
AgentMark string `json:"agentMark,omitempty"` // created | edited: last change via MCP, untouched by the user since
|
||||
Origin *Origin `json:"origin,omitempty"` // API key that created / last changed it
|
||||
}
|
||||
|
||||
// Origin: which API key created an entry and which one changed it last, over which access ("api" for
|
||||
// REST, "mcp"). Key names are resolved when reading; it stays when the user edits the entry.
|
||||
type Origin struct {
|
||||
CreatedVia string `json:"createdVia,omitempty"`
|
||||
CreatedKey string `json:"createdKey,omitempty"`
|
||||
ChangedVia string `json:"changedVia,omitempty"`
|
||||
ChangedKey string `json:"changedKey,omitempty"`
|
||||
ChangedAt string `json:"changedAt,omitempty"`
|
||||
}
|
||||
|
||||
type ThoughtReorderItem struct {
|
||||
@@ -558,20 +568,20 @@ type ListShare struct {
|
||||
}
|
||||
|
||||
type ListItem struct {
|
||||
ID string `json:"id"`
|
||||
ListID string `json:"listId"`
|
||||
Content string `json:"content"`
|
||||
Category string `json:"category,omitempty"`
|
||||
Quantity string `json:"quantity,omitempty"`
|
||||
IsCompleted bool `json:"isCompleted"`
|
||||
CompletedBy string `json:"completedBy,omitempty"`
|
||||
CompletedByName string `json:"completedByName,omitempty"`
|
||||
CreatedBy string `json:"createdBy,omitempty"`
|
||||
CreatedByName string `json:"createdByName,omitempty"`
|
||||
SortOrder int `json:"sortOrder"`
|
||||
CreatedAt string `json:"createdAt"`
|
||||
CompletedAt string `json:"completedAt,omitempty"`
|
||||
AgentMark string `json:"agentMark,omitempty"` // created | edited: last change via MCP, untouched by the user since
|
||||
ID string `json:"id"`
|
||||
ListID string `json:"listId"`
|
||||
Content string `json:"content"`
|
||||
Category string `json:"category,omitempty"`
|
||||
Quantity string `json:"quantity,omitempty"`
|
||||
IsCompleted bool `json:"isCompleted"`
|
||||
CompletedBy string `json:"completedBy,omitempty"`
|
||||
CompletedByName string `json:"completedByName,omitempty"`
|
||||
CreatedBy string `json:"createdBy,omitempty"`
|
||||
CreatedByName string `json:"createdByName,omitempty"`
|
||||
SortOrder int `json:"sortOrder"`
|
||||
CreatedAt string `json:"createdAt"`
|
||||
CompletedAt string `json:"completedAt,omitempty"`
|
||||
Origin *Origin `json:"origin,omitempty"` // API key that created / last changed it
|
||||
}
|
||||
|
||||
type SharedList struct {
|
||||
|
||||
Reference in new issue
Block a user