Repository navigation
feat(auth): price the governance bypass header - #108
Merged
Merged
Conversation
A delete or a retention write asking to bypass governance retention (x-amz-bypass-governance-retention: true) needs s3:BypassGovernanceRetention in S3. The permission joins the vocabulary as a policy action and service-key permission with no commands of its own, and the header is priced on DeleteObject, DeleteObjectVersion, DeleteObjects and PutObjectRetention like the other header-added permissions: on its first value, case-insensitively, and only when signed. The gateway still decides the bypass itself and refuses it for now whatever the key holds. Pins libforge to fil-forge/libforge#88. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The narrow change follows existing authorization mechanisms, includes targeted regression coverage, and has no identified blocking issues.
No open issues 🎉
What changed in this PR
Adds Hilt-side authorization for governance-retention bypass requests using s3:BypassGovernanceRetention. Gateway enforcement remains unchanged, so this does not yet enable bypass on the wire.
Changes:
- Adds the permission to service-key vocabulary and pins libforge’s policy-action support.
- Requires the permission and a signed bypass header on applicable delete and retention operations.
- Adds classification and authorization tests for service keys and principal-bound keys.
| File | Description |
|---|---|
pkg/s3perm/s3perm.go |
Registers the bypass permission without additional Forge commands. |
pkg/s3perm/s3perm_test.go |
Updates the expected policy-action count. |
pkg/rpc/service/auth/operation.go |
Adds bypass-header permission requirements. |
pkg/rpc/service/auth/operation_test.go |
Covers applicable operations and header-value handling. |
pkg/rpc/service/auth/auth_test.go |
Tests permission checks and unsigned-header rejection. |
pkg/bucketpolicy/bucketpolicy_test.go |
Includes bypass in object-resource action coverage. |
go.sum |
Updates libforge dependency checksums. |
go.mod |
Pins libforge with the new policy action. |
AGENTS.md |
Documents bypass-header authorization. |
Review effort: Balanced
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 22, 2026
Published from fil-forge/hilt#108 - Digest: `sha256:211664106f2172d11d732f4d894b0e1953e51b202f20052f52f4cd558a081779` - Commit: fil-forge/hilt@c258fe3 - Publish run: https://github.com/fil-forge/hilt/actions/runs/39779045327 Merging applies [`terraform/envs/dev/apps`](https://github.com/fil-forge/infra-central/tree/main/terraform/envs/dev/apps) with no further confirmation. Co-authored-by: fil-forge-bot[bot] <318653112+fil-forge-bot[bot]@users.noreply.github.com>
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 22, 2026
Sets every staging pin in `terraform/envs/staging/apps/terraform.tfvars` to what `terraform/envs/dev/apps/terraform.tfvars` pins at 7df0121. Merging this is the promotion: Check and deploy applies `terraform/envs/staging/apps` on the merge commit, with no further confirmation. dev passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/39786027357. This pull request is rebuilt each time dev passes its smoke test after a push to `main`, and closed once staging matches dev. To hold a service back, push to `bot/promote-staging` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over staging's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:2116641`](https://github.com/orgs/fil-forge/packages/container/hilt/1428310062) What fil-forge/hilt brings over staging's pin, [`42dd070..c258fe3`](fil-forge/hilt@42dd070...c258fe3): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over staging's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over staging's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over staging's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 22, 2026
Sets every staging pin in `terraform/envs/staging/apps/terraform.tfvars` to what `terraform/envs/dev/apps/terraform.tfvars` pins at af24c86. Merging this is the promotion: Check and deploy applies `terraform/envs/staging/apps` on the merge commit, with no further confirmation. dev passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/39805420203. This pull request is rebuilt each time dev passes its smoke test after a push to `main`, and closed once staging matches dev. To hold a service back, push to `bot/promote-staging` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over staging's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over staging's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over staging's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over staging's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over staging's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 22, 2026
Sets every staging pin in `terraform/envs/staging/apps/terraform.tfvars` to what `terraform/envs/dev/apps/terraform.tfvars` pins at 3d1850d. Merging this is the promotion: Check and deploy applies `terraform/envs/staging/apps` on the merge commit, with no further confirmation. dev passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/39843935969. This pull request is rebuilt each time dev passes its smoke test after a push to `main`, and closed once staging matches dev. To hold a service back, push to `bot/promote-staging` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over staging's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over staging's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over staging's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over staging's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over staging's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
bajtos
pushed a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 23, 2026
Sets every staging pin in `terraform/envs/staging/apps/terraform.tfvars` to what `terraform/envs/dev/apps/terraform.tfvars` pins at 3d1850d. Merging this is the promotion: Check and deploy applies `terraform/envs/staging/apps` on the merge commit, with no further confirmation. dev passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/39843935969. This pull request is rebuilt each time dev passes its smoke test after a push to `main`, and closed once staging matches dev. To hold a service back, push to `bot/promote-staging` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over staging's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over staging's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over staging's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over staging's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over staging's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1)) Co-authored-by: fil-forge-bot[bot] <318653112+fil-forge-bot[bot]@users.noreply.github.com>
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 23, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at 2d31ab2. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/39952503173. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 23, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at e26977c. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40003177982. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 24, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at 7c9481b. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40080685971. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 26, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at a0ab798. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40330356224. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 26, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at 71da424. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40331032249. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 27, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at 1e806bf. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40550164330. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 27, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at 4594baf. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40556471031. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 27, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at c0cec2b. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40565332700. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 29, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at 6a1a861. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40887481549. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 29, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at 9e73ace. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40931550755. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:4807de8`](https://github.com/orgs/fil-forge/packages/container/swarf/1399568771) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..974851a`](fil-forge/swarf@4b2e2ae...974851a): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
fil-forge-bot Bot
added a commit
to fil-forge/infra-central
that referenced
this pull request
Oct 29, 2026
Sets every prod pin in `terraform/envs/prod/apps/terraform.tfvars` to what `terraform/envs/staging/apps/terraform.tfvars` pins at 2a0e4ab. Merging this is the promotion: Check and deploy applies `terraform/envs/prod/apps` on the merge commit, with no further confirmation. staging passed its smoke test on that commit in https://github.com/fil-forge/infra-central/actions/runs/40932541907. This pull request is rebuilt each time staging passes its smoke test after a push to `main`, and closed once prod matches staging. To hold a service back, push to `bot/promote-prod` by hand: the bot leaves the branch alone while this pull request is open. ## sprue [`sha256:79eb33d`](https://github.com/orgs/fil-forge/packages/container/sprue/1339893466) → [`sha256:dac4f50`](https://github.com/orgs/fil-forge/packages/container/sprue/1420685307) What fil-forge/sprue brings over prod's pin, [`9b40689..e675a2c`](fil-forge/sprue@9b40689...e675a2c): - `Upgrade ucantone and log recovered panics` ([85b7799](fil-forge/sprue@85b7799)) - `Fix shared logger mutation in /provider/add` ([dc00875](fil-forge/sprue@dc00875)) - `Tolerate duplicate blob/add and blob/remove` ([c4a810d](fil-forge/sprue@c4a810d)) - `Stop sharing shard slices in memory upload store` ([4c387b0](fil-forge/sprue@4c387b0)) - `Don't panic on failure receipts without a name` ([32423bf](fil-forge/sprue@32423bf)) - `Insert agent index rows in a stable order` ([d5bc0fb](fil-forge/sprue@d5bc0fb)) - `Raise default postgres pool size to 100` ([b2ad08f](fil-forge/sprue@b2ad08f)) - `Lower default postgres pool size to 20` ([2038899](fil-forge/sprue@2038899)) - `Fail a /blob/add that loses the registration race` ([452bc56](fil-forge/sprue@452bc56)) - `Correct the descendingCIDs test helper comment` ([ea8fd67](fil-forge/sprue@ea8fd67)) - `Use conditional writes for admin provider updates` ([77b1492](fil-forge/sprue@77b1492)) - `Revert "Use conditional writes for admin provider updates"` ([5d0de78](fil-forge/sprue@5d0de78)) - fil-forge/sprue#130 ([0b76576](fil-forge/sprue@0b76576)) - fil-forge/sprue#131 ([8c7925a](fil-forge/sprue@8c7925a)) - fil-forge/sprue#132 ([a7762f6](fil-forge/sprue@a7762f6)) - fil-forge/sprue#133 ([a5d84ee](fil-forge/sprue@a5d84ee)) - fil-forge/sprue#137 ([98d22cc](fil-forge/sprue@98d22cc)) - fil-forge/sprue#136 ([9fb2d96](fil-forge/sprue@9fb2d96)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([dbd600d](fil-forge/sprue@dbd600d)) - `Address round 1 review of the observability guidance` ([4188af6](fil-forge/sprue@4188af6)) - fil-forge/sprue#141 ([046155c](fil-forge/sprue@046155c)) - fil-forge/sprue#142 ([80c2ed6](fil-forge/sprue@80c2ed6)) - fil-forge/sprue#145 ([9e5422e](fil-forge/sprue@9e5422e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([a5ee6c7](fil-forge/sprue@a5ee6c7)) - fil-forge/sprue#143 ([3c62127](fil-forge/sprue@3c62127)) - `Rewrap docs/observability.md` ([5c8387a](fil-forge/sprue@5c8387a)) - fil-forge/sprue#140 ([88ec247](fil-forge/sprue@88ec247)) - `Merge branch 'main' into claude/ucantone-upgrade-concurrency-c1a7d5` ([048df30](fil-forge/sprue@048df30)) - fil-forge/sprue#109 ([bb3458c](fil-forge/sprue@bb3458c)) - `Use conditional writes for admin provider updates` ([34ff3f9](fil-forge/sprue@34ff3f9)) - `Copy replication weights in memory provider store` ([0ca9a6e](fil-forge/sprue@0ca9a6e)) - fil-forge/sprue#110 ([ad4c80f](fil-forge/sprue@ad4c80f)) - `Remove Put from the storage provider store` ([49fe894](fil-forge/sprue@49fe894)) - fil-forge/sprue#148 ([2ee5d6c](fil-forge/sprue@2ee5d6c)) - fil-forge/sprue#149 ([7b94804](fil-forge/sprue@7b94804)) - fil-forge/sprue#147 ([e675a2c](fil-forge/sprue@e675a2c)) ## hilt [`sha256:5b6d022`](https://github.com/orgs/fil-forge/packages/container/hilt/1384674731) → [`sha256:147557d`](https://github.com/orgs/fil-forge/packages/container/hilt/1429334113) What fil-forge/hilt brings over prod's pin, [`42dd070..023fa3a`](fil-forge/hilt@42dd070...023fa3a): - fil-forge/hilt#97 ([b5d3b3e](fil-forge/hilt@b5d3b3e)) - fil-forge/hilt#98 ([1f0b2c1](fil-forge/hilt@1f0b2c1)) - fil-forge/hilt#99 ([ac4676e](fil-forge/hilt@ac4676e)) - fil-forge/hilt#101 ([9328a49](fil-forge/hilt@9328a49)) - fil-forge/hilt#102 ([cd26388](fil-forge/hilt@cd26388)) - fil-forge/hilt#100 ([358562a](fil-forge/hilt@358562a)) - fil-forge/hilt#104 ([06acdbb](fil-forge/hilt@06acdbb)) - fil-forge/hilt#105 ([4fd8d7b](fil-forge/hilt@4fd8d7b)) - fil-forge/hilt#106 ([6d996f9](fil-forge/hilt@6d996f9)) - fil-forge/hilt#108 ([c258fe3](fil-forge/hilt@c258fe3)) - fil-forge/hilt#107 ([023fa3a](fil-forge/hilt@023fa3a)) ## swarf [`sha256:c364312`](https://github.com/orgs/fil-forge/packages/container/swarf/1361661163) → [`sha256:87d48f8`](https://github.com/orgs/fil-forge/packages/container/swarf/1469527924) What fil-forge/swarf brings over prod's pin, [`4b2e2ae..0b9c66d`](fil-forge/swarf@4b2e2ae...0b9c66d): - `Add AGENTS.md with observability guidance` ([88dbb4c](fil-forge/swarf@88dbb4c)) - `Address round 1 review of the observability guidance` ([305021e](fil-forge/swarf@305021e)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([7ff3da0](fil-forge/swarf@7ff3da0)) - `Rewrap docs/observability.md` ([72018b4](fil-forge/swarf@72018b4)) - fil-forge/swarf#24 ([974851a](fil-forge/swarf@974851a)) - `FIL-1646 Bump ucantone to run batch invocations concurrently` ([0cbf743](fil-forge/swarf@0cbf743)) - `FIL-1646 Lock the test handler's revoked list` ([cdd1d32](fil-forge/swarf@cdd1d32)) - fil-forge/swarf#26 ([0b9c66d](fil-forge/swarf@0b9c66d)) ## delegator [`sha256:30b1757`](https://github.com/orgs/fil-forge/packages/container/delegator/1178963957) → [`sha256:7fb4eb5`](https://github.com/orgs/fil-forge/packages/container/delegator/1399567101) What fil-forge/delegator brings over prod's pin, [`b5552f1..3ae7270`](fil-forge/delegator@b5552f1...3ae7270): - fil-forge/delegator#35 ([8bf4153](fil-forge/delegator@8bf4153)) - fil-forge/delegator#36 ([3dfe8c4](fil-forge/delegator@3dfe8c4)) - fil-forge/delegator#37 ([eb81da2](fil-forge/delegator@eb81da2)) - fil-forge/delegator#38 ([314b6d6](fil-forge/delegator@314b6d6)) - fil-forge/delegator#40 ([e588b27](fil-forge/delegator@e588b27)) - fil-forge/delegator#42 ([9cfc334](fil-forge/delegator@9cfc334)) - fil-forge/delegator#43 ([3d3525c](fil-forge/delegator@3d3525c)) - fil-forge/delegator#45 ([5e4090c](fil-forge/delegator@5e4090c)) - fil-forge/delegator#47 ([22d663d](fil-forge/delegator@22d663d)) - fil-forge/delegator#44 ([984ea6e](fil-forge/delegator@984ea6e)) - fil-forge/delegator#46 ([861f107](fil-forge/delegator@861f107)) - fil-forge/delegator#48 ([5a14d35](fil-forge/delegator@5a14d35)) - fil-forge/delegator#49 ([3fe2769](fil-forge/delegator@3fe2769)) - fil-forge/delegator#52 ([1ee1e5b](fil-forge/delegator@1ee1e5b)) - fil-forge/delegator#51 ([d12f29a](fil-forge/delegator@d12f29a)) - fil-forge/delegator#53 ([8d3b969](fil-forge/delegator@8d3b969)) - fil-forge/delegator#55 ([4d6e592](fil-forge/delegator@4d6e592)) - fil-forge/delegator#56 ([4d37521](fil-forge/delegator@4d37521)) - fil-forge/delegator#59 ([26d9d4e](fil-forge/delegator@26d9d4e)) - fil-forge/delegator#60 ([7eeff65](fil-forge/delegator@7eeff65)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([fe04a4c](fil-forge/delegator@fe04a4c)) - `Address round 1 review of the observability guidance` ([b29fad9](fil-forge/delegator@b29fad9)) - fil-forge/delegator#62 ([aaba55d](fil-forge/delegator@aaba55d)) - fil-forge/delegator#63 ([b3bc907](fil-forge/delegator@b3bc907)) - fil-forge/delegator#64 ([716049e](fil-forge/delegator@716049e)) - fil-forge/delegator#66 ([2c2784d](fil-forge/delegator@2c2784d)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([409ff15](fil-forge/delegator@409ff15)) - `Rewrap docs/observability.md` ([77e9d0a](fil-forge/delegator@77e9d0a)) - fil-forge/delegator#61 ([3ae7270](fil-forge/delegator@3ae7270)) ## signing_service [`sha256:b7ef5f0`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1157634158) → [`sha256:4493534`](https://github.com/orgs/fil-forge/packages/container/piri-signing-service/1399574922) What fil-forge/piri-signing-service brings over prod's pin, [`c2ac7db..678c9c1`](fil-forge/piri-signing-service@c2ac7db...678c9c1): - fil-forge/piri-signing-service#19 ([8472ad9](fil-forge/piri-signing-service@8472ad9)) - `AGENTS.md: add telemetry, alerts and dashboards to the definition of done` ([53d3758](fil-forge/piri-signing-service@53d3758)) - `Address round 1 review of the observability guidance` ([950ef02](fil-forge/piri-signing-service@950ef02)) - `Keep the always-loaded guidance short, and move the how-to to docs` ([e07d0ee](fil-forge/piri-signing-service@e07d0ee)) - `Rewrap docs/observability.md` ([af8b5c1](fil-forge/piri-signing-service@af8b5c1)) - fil-forge/piri-signing-service#22 ([678c9c1](fil-forge/piri-signing-service@678c9c1))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A delete or a retention write that asks to bypass governance retention, with
x-amz-bypass-governance-retention: true, needss3:BypassGovernanceRetentionin S3. Hilt had no such permission, so the header carried no decision here. This is the Hilt half of governance bypass; the gateway half stays as it is.What changes
s3:BypassGovernanceRetentionjoins the vocabulary as a policy action, added by fil-forge/libforge#88 and now on libforge main, which this pins, and as a service-key permission. It maps to no Forge commands of its own, since the delete or retention write it rides on carries them.The header is priced like the other header-added permissions: on DeleteObject, DeleteObjectVersion, DeleteObjects and PutObjectRetention, read on its first value case-insensitively as the gateway reads it, and only when the signature covers it. A service key must hold the permission and a principal's effective set must grant it.
What does not change
Ingot's gateway layer decides the bypass itself against the bucket's lock state, and today refuses it whatever the key holds, since it looks for the grant in a bucket policy document Ingot does not serve internally. So the permission has no effect on the wire yet: a request carrying the header is refused by Hilt without the permission, and by the gateway with it. The gateway hook that would honour Hilt's answer is the parked other half.
Behaviour changes to know about
UnsignedHeader, like the lock headers.s3:BypassGovernanceRetention.🤖 Generated with Claude Code