viettranx
9f77bfe711
feat(vault): tenant-wide rescan with nullable agent_id + media preview
Vault rescan redesigned from per-agent to tenant-wide:
- POST /v1/vault/rescan replaces POST /v1/agents/{id}/vault/rescan
- agent_id nullable in vault_documents (PG migration 046 + SQLite v14)
- Path-based scope inference: agents/{key}/ → personal, teams/{uuid}/ → team, root → shared
- Interceptor sets agent_id=NULL for team-scoped file writes
- Enrichment worker batch key handles empty agent_id
- web-fetch/ directory excluded from vault scan at any depth
- Media preview: images render via authenticated blob URL, binary files show metadata
- Scan button no longer requires agent selection
2026-04-10 16:32:54 +07:00
..
2026-03-27 09:35:57 +07:00
2026-03-10 00:09:15 +07:00
2026-03-06 18:51:11 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-03-10 00:09:15 +07:00
2026-03-10 00:09:15 +07:00
2026-04-07 12:12:44 +07:00
2026-03-30 21:36:09 +07:00
2026-03-30 21:36:09 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-03-27 09:28:42 +07:00
2026-04-09 23:15:08 +07:00
2026-04-09 21:15:19 +07:00
2026-03-31 11:45:16 +07:00
2026-03-31 23:14:39 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 23:15:08 +07:00
2026-04-09 23:15:08 +07:00
2026-03-30 15:20:01 +07:00
2026-03-23 08:08:23 +07:00
2026-03-31 23:14:39 +07:00
2026-03-30 15:19:43 +07:00
2026-04-10 13:28:44 +07:00
2026-03-04 10:11:17 +07:00
2026-04-09 21:15:19 +07:00
2026-04-10 10:13:58 +07:00
2026-03-27 09:28:42 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-04 13:18:57 +07:00
2026-04-10 16:32:54 +07:00
2026-04-10 12:00:34 +07:00
2026-04-10 13:28:44 +07:00
2026-04-05 07:25:55 +07:00
2026-02-22 14:58:07 +07:00
2026-02-22 14:58:07 +07:00
2026-04-09 21:15:19 +07:00
2026-03-19 13:35:57 +07:00
2026-03-19 13:35:57 +07:00
2026-04-08 13:35:19 +07:00
2026-04-09 21:15:19 +07:00
2026-03-19 13:35:57 +07:00
2026-03-27 09:28:42 +07:00
2026-03-27 09:28:42 +07:00
2026-03-27 09:28:42 +07:00
2026-03-31 11:45:16 +07:00
2026-04-09 21:15:19 +07:00
2026-04-10 16:32:54 +07:00
2026-04-09 21:15:19 +07:00
2026-02-22 14:58:07 +07:00
2026-04-04 06:58:15 +07:00
2026-04-10 13:28:44 +07:00
2026-04-10 16:32:54 +07:00
2026-03-07 20:51:39 +07:00
2026-03-11 07:27:38 +07:00
2026-03-09 22:28:18 +07:00
2026-04-09 21:15:19 +07:00
2026-03-10 00:09:15 +07:00
2026-03-07 00:46:29 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-03-06 18:51:11 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-04-09 21:15:19 +07:00
2026-03-07 20:51:39 +07:00