Cathie Integra
989227097a
Docs: Clarify NPM_CONFIG_IGNORE_SCRIPTS default and rebuild override
2026-04-21 07:56:17 +02:00
Michael Mayer
7d39b2d9fe
API: Extend check-api-request-limits.sh for ServeHTTP and direct reads
...
- Flag <name>.ServeHTTP(<writer>, c.Request) calls without a nearby
LimitRequestBodyBytes so SDK-delegated handlers (MCP today, future
SDKs tomorrow) are held to the same body-cap contract as BindJSON.
- Also flag direct reads via io.ReadAll, io.LimitReader,
json.NewDecoder, xml.NewDecoder, and yaml.NewDecoder on c.Request.Body
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-20 13:55:29 +02:00
Michael Mayer
a61d284134
MCP: Cap /api/v1/mcp body size and shorten session idle timeout #5024
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-20 13:54:07 +02:00
Cathie Integra
543d43ab6a
Docker: Raise BuildKit step log size/speed limits in buildx-multi.sh
...
Set BUILDKIT_STEP_LOG_MAX_SIZE=5 MiB and BUILDKIT_STEP_LOG_MAX_SPEED=10 MiB/s
on both the local and remote ssh://arm multibuilder nodes so long apt-get
transcripts on unstable Ubuntu bases aren't truncated during preview builds.
2026-04-18 11:45:28 +02:00
Michael Mayer
c37fdf51a7
Translations: Update frontend/src/locales/json/*.json #5536
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-18 11:37:10 +02:00
Weblate
d53f8f0fd2
Weblate: Update frontend translations
2026-04-18 11:35:06 +02:00
Michael Mayer
4599cc07ce
MCP: Expose DisableMCP via ClientConfig for frontend gating #5024 #5536
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-18 11:31:31 +02:00
Michael Mayer
0cf372af79
Config: Add PHOTOPRISM_DISABLE_MCP to compose.yaml & charts #5024 #5536
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-18 11:09:52 +02:00
Michael Mayer
da224d309e
MCP: Add "DisableMCP" option to disable /api/v1/mcp #5024 #5536
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-18 11:08:58 +02:00
Michael Mayer
d529f7fe4a
Docs: Document heading style as Chicago-style title case
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-18 09:41:11 +02:00
Michael Mayer
ac9c9cf27b
MCP: Remove experimental gate test and update documentation #5024
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-18 08:08:29 +02:00
Michael Mayer
825b8049cf
MCP: Remove experimental gate from /api/v1/mcp registration #5024
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-18 07:51:57 +02:00
Michael Mayer
51976b7f5c
Search: Add NOT & AND operators to label filter #5535
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-17 17:25:18 +02:00
Michael Mayer
15036786bc
Claude: Auto-accept file edits in project settings.json
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-17 12:45:07 +02:00
Michael Mayer
1ced5cbf1e
Backend: Update github.com/zitadel/oidc/v3 in go.mod and go.sum
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-17 11:57:35 +02:00
Michael Mayer
55edaeae57
Claude: Add project settings.json with shared team defaults
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-17 11:51:48 +02:00
Michael Mayer
85ca9dfb19
Develop: Upgrade base image from 260413-questing to 260417-questing
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-17 09:44:52 +02:00
Cathie Integra
8e5ece95a3
Scripts: Install Mermaid CLI and Chromium for ARM64 in dev images
2026-04-17 09:38:37 +02:00
Cathie Integra
7e6773e94e
Claude: Compact repo rules to reduce context size
2026-04-17 08:16:17 +02:00
Michael Mayer
79b3f569a8
API: Fix incorrect Swagger response schemas and "Fore more" typos
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-15 15:56:13 +02:00
Michael Mayer
be98c04d0d
Docker: Document directory layout and legacy image policy in README.md
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-15 15:20:53 +02:00
Michael Mayer
c46deb6129
Go: Upgrade "govips" to v2.18.0 (requires libvips 8.14 or later)
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-15 15:09:23 +02:00
Michael Mayer
edb6f2f2b1
Go: Upgrade dependencies (gocron, oidc, mcp-sdk, x/*, sqlite3, otel)
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-15 14:58:05 +02:00
Michael Mayer
7db82af193
API: Document "GET /api/v1/photos/view" in swagger.json
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-15 14:01:19 +02:00
Cathie Integra
fcbfbfd8be
Docs: Disable Co-Authored-By: Claude trailer in CLAUDE.md
2026-04-14 10:40:34 +02:00
Cathie Integra
ee6ff221a0
Docs: Note "--ignore-scripts" for npm outside the dev image
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 15:11:51 +02:00
Michael Mayer
1beb83b554
Develop: Upgrade base image from 260331-questing to 260413-questing
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 14:06:20 +02:00
Michael Mayer
6d29459aca
Build: Add Codex skill bundles and auto-link target to Makefile
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 13:00:49 +02:00
Michael Mayer
26a5c06762
Claude: Run "claude update" if already installed and add render-pdf deps
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 12:49:04 +02:00
Michael Mayer
0c226fafcf
Header: Add ContentTypeEventStream and reuse in MCP code #5024
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 09:18:40 +02:00
Michael Mayer
6704b217d8
MCP: Document constants and vars, export ToolNames/ResourceURIs #5024
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 09:09:12 +02:00
Michael Mayer
fdfe46c7b3
MCP: Add stdio smoke test and mcpAppMetadata coverage #5024 #5519
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 08:57:46 +02:00
Michael Mayer
342b03e317
MCP: Drop "internalmcp" alias and use "mcp" package name directly #5024
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 08:48:52 +02:00
Michael Mayer
4f14ed90c0
MCP: Remove "prototype" wording for production-readiness #5024 #5519
...
- Rewrite package doc, struct comments, log line, and route-registration
comment so they describe the MCP server as a first-class feature
rather than a pre-release prototype. The "Usage" strings on
MCPCommands / MCPServeCommand were updated separately and stay
unchanged.
- Drop "in this prototype" from the edition-advisory warning emitted by
list_config_keys; the message now reads "edition filtering is
advisory; results come from the current <edition> build metadata".
- Rewrite internal/mcp/README.md: new "Scope" section with
in-scope/out-of-scope invariants, corrected authorization summary
(admin + API client roles + manager in Pro/Portal, anonymous in
public mode for the registered read-only tools), and a clearer
"Current Capabilities" block.
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 08:46:07 +02:00
Michael Mayer
16fc758f54
MCP: Allow anonymous access in public mode for demo deployments #5024
...
- Drop the public-mode 403 short-circuit in internal/api/mcp.go. In
public mode api.Session() returns the default public session, so
Auth(c, acl.ResourceMCP, acl.ActionView) + s.Abort(c) authorize
anonymous callers naturally. This enables the prototype to run on
demo.photoprism.app and similar showcase installations without
loosening the auth path or adding another toggle.
- The exemption is only safe because every currently registered tool
returns static reference metadata derived from config.Flags and
form.Report(&form.SearchPhotos{}) — no database access, no per-user
state, no secrets, no mutations. A handler-level comment captures
that contract so a future tool that does not fit cannot slip in
unnoticed.
- Flip the public-mode test case (ForbiddenPublicMode ->
AllowedPublicMode) in internal/api/mcp_test.go to a full anonymous
initialize + notifications/initialized + tools/call round-trip
against both registered tools, so any future tightening of the
policy regresses loudly.
- Update internal/mcp/README.md: the Authorization bullets now
describe the public-mode path, the Rate Limiting note reflects that
CE/Plus have no generic throttle in public mode, and a new
"Extending the Tool Surface" section documents the contract every
new tool must uphold plus the three supported extension paths
(two-server factory, per-tool context checks, SDK middleware).
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-13 08:19:29 +02:00
Michael Mayer
df13ea9e02
MCP: Refine auth flow, JWT scope, and find_search_filters #5024 #5519
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-10 13:40:22 +02:00
Ömer Duran
e2f8474309
MCP: Add read-only Model Context Protocol prototype #5024 #5519
...
* MCP: Add internal read-only prototype #5024
* MCP: Fix edition detection, section assignment, and input validation #5024
* MCP: Add authenticated HTTP endpoint with ACL and experimental gate #5024
* MCP: Document client compatibility and config examples #502
* MCP: Refine ACL grants and finalize prototype polish #5024 #5519
Signed-off-by: Michael Mayer <michael@photoprism.app >
* MCP: Update go.sum #5024 #5519
Signed-off-by: Michael Mayer <michael@photoprism.app >
* MCP: Update license NOTICE files #5024 #5519
Signed-off-by: Michael Mayer <michael@photoprism.app >
---------
Signed-off-by: Michael Mayer <michael@photoprism.app >
Co-authored-by: Michael Mayer <michael@photoprism.app >
2026-04-10 12:51:11 +02:00
Michael Mayer
32f8bd9896
Claude: Align rules with AGENTS.md and fix test coverage placement
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-09 19:52:49 +02:00
Michael Mayer
8640dee635
Docs: Split AGENTS guides into a hierarchical structure
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-09 19:28:14 +02:00
Michael Mayer
997ca175be
Claude: Add rules files and update CLAUDE.md
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-09 18:22:16 +02:00
Michael Mayer
f0f3ce400f
Docs: Update AGENTS.md
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-08 09:34:07 +02:00
Michael Mayer
a8ec6f9cbb
Develop: Refactor project configuration directory structure
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-08 09:25:48 +02:00
Michael Mayer
0759dfc946
Frontend: Use monospaced font for .p-log-message in logs.css
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-01 15:28:52 +02:00
Michael Mayer
e0333cb43b
Frontend: Update deps in package.json and package-lock.json
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-01 15:26:06 +02:00
Michael Mayer
cbcebe8de4
Frontend: Update src/locales/json/*.json after translation removals
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-01 15:25:44 +02:00
Michael Mayer
568432df88
Images: Prefer native HEIF and AVIF conversion via libvips #5509
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-01 15:18:21 +02:00
Michael Mayer
812faccae6
Clean-up: Drop imaging and pigo library integrations #5353 #5508 #668
...
Also drops github.com/esimov/pigo since it requires the imaging lib.
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-04-01 13:47:42 +02:00
graciousgrey
defb003db3
Tests: Adapt tests to frontend changes
2026-03-31 16:57:29 +02:00
Michael Mayer
e313f0e0bc
Thumb: Bound TIFF image decodes to file size
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-03-31 15:16:23 +02:00
Michael Mayer
4b18fe1a45
Develop: Add bubblewrap package to base images
...
Signed-off-by: Michael Mayer <michael@photoprism.app >
2026-03-31 15:01:20 +02:00