rename: compose service tower-finder becomes server (86c990cfh) - #212
Merged
Merged
Conversation
|
Claude finished @Babissimo's task in 1m 40s —— View job Claude finished the code review
ReviewThis is a clean, mechanical rename with no functional issues found. I verified:
No bugs, inconsistencies, or missed spots found. Nothing to fix here. |
Task 7, the last functional part of the rename. The service key doubles as a hostname on the compose network, so the fleet's FLEET_HOST and FLEET_VALIDATION_URL move in the same change or the fleet cannot reach the app. Images become retina-server:latest and retina-server-fleet:latest. server rather than retina-server: inside a project already called retina-server the pair reads redundantly, and `docker compose logs server` is what people already type. The parity gate's allowlist is keyed on services.tower-finder.*, so it would have gone on passing while covering nothing. Its regex literals and the one dict-key access are both updated; a regex-only substitution misses the latter and the gate raises KeyError on the next run. The comment naming tower-finder-service is left alone, as are the four HOST_LEGACY_REDIRECT values: those are vhost hostnames that resolve to the separate service stack, not references to this service. Both deploy paths named the service on the compose command line, so ci.yml and deploy-test.yml move too or the next deploy fails outright. Rollback images were pre-tagged on every droplet before this lands, since pre-deploy.sh writes retina-server:rollback from now on and the previous deploy's rollback point exists only under the old name. staging has none to tag: pre-deploy.sh runs solely in deploy-production, so staging has no rollback point by design rather than by loss. The ONBOARDING note warning that `docker compose logs server` returns nothing is deleted rather than reversed. Measured on compose v2: an unknown service name errors with "no such service", so after this change the old name fails loudly instead of reading as a false all-clear. The trap it described no longer exists.
Babissimo
force-pushed
the
rename/compose-service-server
branch
from
August 20, 2026 16:44
6cdf33d to
d9e728f
Compare
|
Claude finished @Babissimo's task in 1m 13s —— View job Code review
No new commits since the prior automated review (still the single Verified:
No bugs or inconsistencies found. Nothing to fix. |
Babissimo
added a commit
that referenced
this pull request
Aug 20, 2026
…215) #212 deleted this note on the grounds that the rename resolved the trap it described. That was wrong, and the reasoning behind it was too: the failure was never that compose returns nothing. It is that `no such service` goes to stderr, so a grep over the output matches nothing and reads as a clean "no errors in the logs". That is what produced a false all-clear on production on 2026-08-14. The rename does not remove that trap, it swaps which name triggers it, and the new losing guess is `tower-finder`: the name in every saved command, older ticket and operator's memory. So the warning is worth more after the rename than before it, not less.
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.
Task 7 of the retina-server rename (
86c990cfh), and the last functional part of it. Tasks 1 to 6 are done: all three droplets already serve from/opt/retina-serverwithCOMPOSE_PROJECT_NAME=retina-server.What changes
tower-finderbecomesserver, across all five compose files.retina-server:latestandretina-server-fleet:latest.up -d --build tower-finder,exec -T tower-finder), soci.ymlanddeploy-test.ymlmove with it or the next deploy fails outright.pre-deploy.sh,rollback.sh,classify-migration-gap.pyand the justfile follow.The service key doubles as a hostname on the compose network, so the fleet's
FLEET_HOSTandFLEET_VALIDATION_URLmove in the same change; they resolve the app by service name.serverrather thanretina-server: inside a project already calledretina-serverthe pair reads redundantly, anddocker compose logs serveris what people already type.What deliberately does not change
Four
HOST_LEGACY_REDIRECTvalues (tower-finder.retina.fm, the staging and test variants, andtower-finder.localhost). These are vhost hostnames that resolve to the separatetower-finder-servicestack, not references to this service. A blanket substitution would have taken out a production redirect; a count-asserting patch caught thatimage: tower-finder:latestalso appears inside a comment, which a plain replace would have hit twice.Also untouched: the
tower-finder-servicecomment in the parity gate,pin/tower-finder(a real retina-analytics branch), the frontend npm package name and CSV download filenames, and the dated design notes. Those belong to the documentation sweep (task 9) or are not this service.The parity gate
Its allowlist is keyed on
services.tower-finder.*, so left alone it would have gone on passing while covering nothing. Seven regex literals and one dict-key access are updated. The dict access does not match the regex shape, so a regex-only substitution misses it and the gate raisesKeyErroron the next run.Rollback images pre-tagged before this lands
pre-deploy.shwritesretina-server:rollbackfrom now on, but the previous deploy's rollback point exists only under the old name, so the first deploy after this would have had nothing to roll back to. Pre-tagged on retina-test and retina-prod.staging had none to tag, which is not damage:
pre-deploy.shruns solely indeploy-production, so staging has no rollback point by design.One note deleted rather than reversed
ONBOARDING warned that
docker compose logs serverreturns nothing and reads as an all-clear. Measured on compose v2: an unknown service name errors withno such service, while a known service with nothing running is silent. So after this change the old name fails loudly and the trap it described no longer exists. Deleted rather than rewritten in the other direction.Verification
docker compose config --servicesper overlay:serverfor prod,fleet serverfor staging, test and local. Merged prod config resolvesimage: retina-server:latest.deploy/check-env-parity.pyexits 0.pre-commit run --all-filespasses.rc=0, 467s.Heads-up for anyone with commands in flight
docker compose logs tower-finderanddocker compose exec tower-finder ...stop working once this deploys; the service isserver.86cb6385b's procedure carries two such commands and has been annotated.