Repository navigation
Conversation
…base URL (Silo-Server#43) * feat(requestrouter): let request routers say they need no API key or base URL Add api_key_optional and base_url_optional to RequestRouterDescriptor. A router that sets api_key_optional receives connections whose api_key is empty; one that sets base_url_optional can be saved and tested without a base URL. Unset, or an absent descriptor, keeps today's behaviour: a connection needs both. Closes Silo-Server#42 * fix(requestrouter): word the credential flags by what hosts enforce Say that the admin form, not the API, refuses a server without a key or URL, that only Fulfill, CheckStatus and ListConfigOptions skip a connection without a key, and that httpclient needs both. Update the plugin rather than reinstall it, so its servers stay bound. Cover base_url_optional alone and unchanged metadata for plugins without the flags. * docs(requestrouter): say older Silo hosts refuse a plugin binary with the flags Silo reads a bare plugin binary's manifest strictly, so a host that predates the flags refuses such a binary; an archive installs. Tracked in Silo-Server/silo-server#2436.
) Manifest validation now accepts max_batch_size from 1 to 1000 and exports the limit as manifest.MaxWatchSyncBatchSize. The proto comment and docs/compatibility.md state that the value bounds every ApplyEvents call and the ListRemoteState page size, and that hosts and catalog tooling on earlier SDKs reject values over 100. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…r providers (Silo-Server#45) * feat(markers): send the episode's own provider IDs and title to marker providers FetchMarkersRequest and SubmitMarkerRequest gain episode_external_ids and episode_title. A marker provider such as TheIntroDB v4 reads season and episode numbers in the numbering of the ID it receives, so it needs to know which providers matched the host's episode at those numbers. Older hosts leave the fields empty and older plugins ignore them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(markers): tell marker providers whose numbering an episode follows FetchMarkersRequest and SubmitMarkerRequest gain episode_numbering: the external ID key ("tvdb" or "tmdb") of the provider whose numbering the episode follows. Hosts match each metadata provider's episodes by number alone, so an episode row usually carries both TMDB and TVDB IDs and a plugin cannot tell from the IDs which numbering applies. The field is an open vocabulary; an unknown value reads as empty. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
3 upstream commits since d8cb03a. Rebrand-aware merge by Prairie-Server/.github upstream-sync/prairie_sync.py (base=rebrand(merge-base), theirs=rebrand(upstream)).
Upstream sync audit
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
|
Superseded by #16 (refreshed to current upstream/main). |
Rebrand-aware merge of
Silo-Server/silo-plugin-sdkat6a1b575ae9(3 upstream commits).Land with "Create a merge commit". Never squash. The second parent is the real upstream commit; that is what keeps the next sync small.
0 files auto-resolved (hunks: theirs 0, ours 0, same 0, superset 0, import-union 0; delete-over-noise 0).
Generated files taken from upstream (the regen job rebuilds them on this branch):
pkg/pluginproto/prairie/plugin/v1/marker_provider.pb.gopkg/pluginproto/prairie/plugin/v1/request_router.pb.goThe audit comment below lists likely compile breaks and lost Prairie lines. CI must be green, including
Prairie invariants; a failing test after a sync usually means Prairie code was lost, not that the test is stale.Summary by CodeRabbit
New Features
Documentation