The desk's replies no longer ring the bell: reports and players' answers do, the desk's own mail does not
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
35d805fda3
commit
f68b3cef06
@@ -24,8 +24,9 @@ One JSONL line per entry:
|
|||||||
word back, sent from their lobby under the desk's reply.
|
word back, sent from their lobby under the desk's reply.
|
||||||
A report is ANSWERED when the LAST line under it is the desk's; a
|
A report is ANSWERED when the LAST line under it is the desk's; a
|
||||||
player's answer reopens it. Never re-answer a settled one unless Eric
|
player's answer reopens it. Never re-answer a settled one unless Eric
|
||||||
asks for a revision. Every report, answer, and desk reply rings a
|
asks for a revision. Every report and every player's answer rings a
|
||||||
Sentry issue on Eric's phone (fingerprinted per report or per line).
|
Sentry issue on Eric's phone (fingerprinted per report or per line);
|
||||||
|
the desk's own replies ring nothing — Eric watches them go out here.
|
||||||
|
|
||||||
- Picture: `{reportId, image: "<id>.png", at}` — the player attached a
|
- Picture: `{reportId, image: "<id>.png", at}` — the player attached a
|
||||||
screenshot; the file is `/var/lib/wizwar/feedback-images/<id>.<ext>`.
|
screenshot; the file is `/var/lib/wizwar/feedback-images/<id>.<ext>`.
|
||||||
|
|||||||
@@ -17,21 +17,3 @@ console.log(JSON.stringify({
|
|||||||
text: process.env.TEXT,
|
text: process.env.TEXT,
|
||||||
}));')
|
}));')
|
||||||
printf '%s\n' "$LINE" | ssh "root@$HOST" 'cat >> /var/lib/wizwar/feedback.jsonl && tail -1 /var/lib/wizwar/feedback.jsonl'
|
printf '%s\n' "$LINE" | ssh "root@$HOST" 'cat >> /var/lib/wizwar/feedback.jsonl && tail -1 /var/lib/wizwar/feedback.jsonl'
|
||||||
# The desk's bell rings for the reply too, so Eric sees the exchange move:
|
|
||||||
# an event straight to Sentry from the droplet, with the DSN the service holds.
|
|
||||||
ssh "root@$HOST" "REPORT_ID='$REPORT_ID' STATUS='$STATUS' TEXT=\"\$(cat)\" python3 - <<'PY'
|
|
||||||
import json, os, re, uuid, urllib.request, datetime
|
|
||||||
svc = open('/etc/systemd/system/wizwar.service').read()
|
|
||||||
m = re.search(r'SENTRY_DSN=https://([0-9a-f]+)@([^/]+)/(\\d+)', svc)
|
|
||||||
if not m: raise SystemExit(0)
|
|
||||||
key, host, project = m.groups()
|
|
||||||
text = os.environ['TEXT']; rid = os.environ['REPORT_ID']; status = os.environ['STATUS']
|
|
||||||
now = datetime.datetime.now(datetime.UTC).isoformat()
|
|
||||||
event = {'event_id': uuid.uuid4().hex, 'timestamp': now, 'level': 'error', 'platform': 'other',
|
|
||||||
'message': {'formatted': f'Desk replies on report {rid} ({status}): {text[:100]}'}, 'fingerprint': ['report-reply', rid, now],
|
|
||||||
'tags': {'report': rid, 'status': status}, 'extra': {'text': text}}
|
|
||||||
body = json.dumps({'event_id': event['event_id'], 'sent_at': event['timestamp']}) + '\\n' + json.dumps({'type': 'event'}) + '\\n' + json.dumps(event)
|
|
||||||
req = urllib.request.Request(f'https://{host}/api/{project}/envelope/', data=body.encode(), headers={'Content-Type': 'application/x-sentry-envelope', 'X-Sentry-Auth': f'Sentry sentry_version=7, sentry_client=wizwar-desk/1, sentry_key={key}'})
|
|
||||||
try: urllib.request.urlopen(req, timeout=10); print('bell rung')
|
|
||||||
except Exception as e: print('bell failed:', e)
|
|
||||||
PY" <<< "$TEXT"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user