mirror of
https://github.com/kuhyx/signal-bot.git
synced 2026-11-11 15:34:07 +01:00
|
Some checks are pending
CI / check (push) Waiting to run
Two things the first live run found, neither of which any test could have.
**exiftool was invisible to the unit.** Arch's perl-image-exiftool installs to
/usr/bin/vendor_perl/exiftool. That is on an interactive shell's PATH, because
perl's profile.d puts it there, and it is *not* on a systemd user unit's, whose
default is "/usr/local/bin:/usr/bin". So shutil.which found it in every test
and in every shell, and the first real !add_photo under the unit answered
"exiftool is not installed; refusing to store .jpg" -- with exiftool plainly
installed. media_strip.locate() now tries PATH and then the known install
locations, and install_service.sh verifies the result through the bot's own
resolver under the unit's PATH rather than through `command -v`, which answers
for the wrong shell. Fixing the lookup rather than setting PATH in the unit:
the latter is a note somebody has to remember on the next machine.
The absent-exiftool test had to blind *both* lookups to keep covering its
branch -- on a machine that has the package the fallback finds it, which is
precisely how the gap survived.
**The self-test could not carry a photo.** Signal never delivers an account
its own sends: measured against the live container, a single-device account
gets no sync copy either, and a sent attachment is not added to the container's
attachment store (only inbound ones are). So !add_photo could not be exercised
the way every other command is. selftest.build_frame and POST /_selftest now
take attachment ids that the container's store already holds, so the handler
fetches them back over the real GET /v1/attachments/{id} -- the ingest path
under test is the live one, not a hand-fed buffer. Still fail-closed on
SELFTEST_GROUPS.
Verified live, against real Signal and the real container, in the testbot
group, on a throwaway album scoped to that group so the private one was
neither read nor written:
- a geotagged JPEG (GPS + Make) went in as "!dodaj alfa wakacjelive"
- the stored file reports zero non-structural tags, and neither the GPS
marker nor the Make string survives in its bytes
- GET /v1/attachments/<id> now 404s and the file is gone from disk, so the
second copy really is deleted
- the typed label appears zero times in the journal
- !losowe wakacjelive, !alfa and an unknown label all answered without error
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JqqE22jp94B1ypwxppdr1o
|
||
|---|---|---|
| .. | ||
| stats | ||
| __init__.py | ||
| __main__.py | ||
| aliases.json | ||
| animals.py | ||
| announce.py | ||
| app.py | ||
| bot.py | ||
| changelog.py | ||
| config_env.py | ||
| config.py | ||
| counting.py | ||
| decorators.py | ||
| discovery.py | ||
| dispatcher.py | ||
| endpoints.py | ||
| envelope_shape.py | ||
| external.py | ||
| folding.py | ||
| groups.py | ||
| help_command.py | ||
| http_client.py | ||
| liveness.py | ||
| logging_setup.py | ||
| media_sniff.py | ||
| media_strip.py | ||
| media_tags.py | ||
| membership.py | ||
| models.py | ||
| pack_add.py | ||
| pack_command.py | ||
| pack_custom.py | ||
| pack_holder.py | ||
| pack_ingest.py | ||
| pack_load.py | ||
| pack_random.py | ||
| pack_replies.py | ||
| pack_store.py | ||
| pack.py | ||
| popes_command.py | ||
| popes.json | ||
| portcheck.py | ||
| portraits.py | ||
| quoting.py | ||
| registry.py | ||
| reporting.py | ||
| roster.py | ||
| scheduler.py | ||
| schema.py | ||
| selftest.py | ||
| startup_retry.py | ||
| startup.py | ||
| store.py | ||
| transport_base.py | ||
| transport_fake.py | ||
| transport_rest.py | ||
| trust.py | ||
| versioning.py | ||