Files
felhom.eu/documentation/audits/update-night-2026-09-21/apps/papra/app-logs-after.txt
T
admin da20722e76
gates / gates (push) Successful in 27s
Update night 2026-09-21: Phase 0 and Phase 1 evidence, the drill method, and two instrument fixes
INTERIM CHECKPOINT — evidence off the machine at the end of the phase that produced it (R-320),
not at the end of the session. Phases 2-5 follow in a later commit.

Phase 0, all three mechanisms proven with their controls:
- the fleet floor to 0.261.0 with its declared MinAgent — both demo boxes in 13 s, the hub
  logging `managed floor SERVED ... from declared (golden 0.258.0)`.
- a PRIVATE DRILL CATALOG (admin/app-catalog-drill), so that broken, dummy, cross-repo and
  engine-major edges can be measured without the live catalog ever carrying one. Positive
  control quoted, and two negative controls: the live catalog's main and both real boxes'
  caches unchanged.
- a throwaway image store on the scratch guest, which is what makes an UNATTENDED HOLD
  measurable at all: an edge that PASSES the within-a-major test and still fails.
  CompareImageRefs was proven to order host:port/ references by RUNNING it (4 positive cases
  + 1 negative control), not by reading it.

Phase 1: real within-a-major upstream edges walked on guest 9202 through the product's own
guarded Update, each app seeded and read back through its OWN front door (R-156), with a
per-edge verdict record in 09's shape. `inconclusive` is never collapsed into `failed`.

TWO INSTRUMENT FIXES, both in this repo's own evidence code:
- 00-api-recipe.md said the app page is /app/<n>; it is /apps/<n>, and every call it described
  404s. Corrected, with the session-expiry note that cost the same time.
- unattended-caller.py's follow() read update_phase/updating off the API ENVELOPE, so both were
  always None and EVERY followed update ran to its 900 s timeout and was then recorded
  `timeout` and never-press-again. Fixed before B1 relied on it. R-623.

No controller, agent or hub code was written. The live catalog carries no broken reference.

Gates: repo_gates.py --fast — all 15 OK, exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-21 21:17:46 +02:00

42 lines
9.6 KiB
Plaintext

papra | $ pnpm migrate:up:prod && pnpm start
papra | $ tsx src/scripts/migrate-up.script.ts
papra | (node:49) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
papra | (Use `node --trace-deprecation ...` to show where the warning was created)
papra | {"level":"debug","message":"Running migrations","timestampMs":1790017715670,"namespace":"migrations","data":{"scriptName":"migrate-up","isDryRun":false,"migrations":["initial-schema-setup","documents-fts","tagging-rules","api-keys","organizations-webhooks","organizations-invitations-improvement","document-activity-log","document-activity-log-on-delete-set-null","drop-legacy-migrations","document-file-encryption","soft-delete-organizations","tagging-rule-condition-match-mode","drop-fts-5-triggers","two-factor-authentication","index-documents-fts-ids","case-insensitive-tag-name-uniq-constraint","documents-date","custom-properties","two-factor-verified","kv-store","document-share-links","documents-notes","document-views","user-plan-entitlements","add-organization-settings-table","add-indexes","ai-credits"],"migrationsToRun":["add-indexes","ai-credits"],"existingMigrations":["initial-schema-setup","documents-fts","tagging-rules","api-keys","organizations-webhooks","organizations-invitations-improvement","document-activity-log","document-activity-log-on-delete-set-null","drop-legacy-migrations","document-file-encryption","soft-delete-organizations","tagging-rule-condition-match-mode","drop-fts-5-triggers","two-factor-authentication","index-documents-fts-ids","case-insensitive-tag-name-uniq-constraint","documents-date","custom-properties","two-factor-verified","kv-store","document-share-links","documents-notes","document-views","user-plan-entitlements","add-organization-settings-table"],"migrationsToRunCount":2,"existingMigrationsCount":25}}
papra | {"level":"info","message":"Migration run successfully","timestampMs":1790017715755,"namespace":"migrations","data":{"scriptName":"migrate-up","isDryRun":false,"migrationName":"add-indexes"}}
papra | {"level":"info","message":"Migration run successfully","timestampMs":1790017715894,"namespace":"migrations","data":{"scriptName":"migrate-up","isDryRun":false,"migrationName":"ai-credits"}}
papra | {"level":"info","message":"All migrations run successfully","timestampMs":1790017715894,"namespace":"migrations","data":{"scriptName":"migrate-up","isDryRun":false}}
papra | {"level":"debug","message":"Script finished","timestampMs":1790017715894,"namespace":"scripts","data":{"scriptName":"migrate-up","isDryRun":false}}
papra | $ node dist/index.js
papra | {"level":"info","message":"Starting application","timestampMs":1790017718720,"namespace":"app-server","data":{"processMode":"all","isWebMode":true,"isWorkerMode":true}}
papra | {"level":"info","message":"Creating emails services","timestampMs":1790017718729,"namespace":"emails.services","data":{"processMode":"all","driverName":"logger"}}
papra | {"level":"debug","message":"Task persistence driver initialized","timestampMs":1790017718750,"namespace":"tasks:services","data":{"processMode":"all","driverName":"memory"}}
papra | {"level":"info","message":"Hard delete expired documents task registered","timestampMs":1790017718791,"namespace":"documents:tasks:hardDeleteExpiredDocuments","data":{"processMode":"all","taskName":"hard-delete-expired-documents","cron":"0 0 * * *","runOnStartup":true}}
papra | {"level":"info","message":"Update expired pending invitations status task registered","timestampMs":1790017718792,"namespace":"organizations:tasks:expireInvitations","data":{"processMode":"all","taskName":"expire-invitations","cron":"0 0 * * *","runOnStartup":true}}
papra | {"level":"info","message":"Purge expired organizations task registered","timestampMs":1790017718794,"namespace":"organizations:tasks:purgeExpiredOrganizations","data":{"processMode":"all","taskName":"purge-expired-organizations","cron":"0 1 * * *","runOnStartup":true}}
papra | {"level":"info","message":"Purge expired kv-store entries task registered","timestampMs":1790017718795,"namespace":"kv-store:tasks:purgeExpiredEntries","data":{"processMode":"all","taskName":"purge-expired-kv-entries","cron":"0 2 * * *","runOnStartup":true}}
papra | {"level":"info","message":"Re-verify plan entitlements task registered","timestampMs":1790017718796,"namespace":"plan-entitlements:tasks:reverifyPlanEntitlements","data":{"processMode":"all","taskName":"reverify-plan-entitlements","cron":"0 3 * * *","runOnStartup":false}}
papra | {"level":"info","message":"Worker started","timestampMs":1790017718796,"namespace":"tasks:services","data":{"processMode":"all","workerId":"default"}}
papra | {"level":"info","message":"Task worker started","timestampMs":1790017718796,"namespace":"tasks:services","data":{"processMode":"all","workerId":"default"}}
papra | {"level":"info","message":"Worker started","timestampMs":1790017718797,"namespace":"app-server","data":{"processMode":"all"}}
papra | {"level":"info","message":"Server started","timestampMs":1790017718804,"namespace":"app-server","data":{"processMode":"all","port":1221}}
papra | {"level":"debug","message":"Consuming job","timestampMs":1790017718804,"namespace":"tasks:services","data":{"processMode":"all","jobId":"periodic-hard-delete-expired-documents","taskName":"hard-delete-expired-documents"}}
papra | {"level":"info","message":"Expired documents deleted","timestampMs":1790017718810,"namespace":"documents:tasks:hardDeleteExpiredDocuments","data":{"processMode":"all","deletedDocumentsCount":0}}
papra | {"level":"info","message":"Job rescheduled","timestampMs":1790017718810,"namespace":"tasks:services","data":{"processMode":"all","jobId":"periodic-hard-delete-expired-documents","taskName":"hard-delete-expired-documents","nextDate":"2026-09-21T22:00:00.000Z"}}
papra | {"level":"debug","message":"Consuming job","timestampMs":1790017718810,"namespace":"tasks:services","data":{"processMode":"all","jobId":"periodic-expire-invitations","taskName":"expire-invitations"}}
papra | {"level":"info","message":"Updated expired pending invitations status","timestampMs":1790017718812,"namespace":"organizations:tasks:expireInvitations","data":{"processMode":"all"}}
papra | {"level":"info","message":"Job rescheduled","timestampMs":1790017718813,"namespace":"tasks:services","data":{"processMode":"all","jobId":"periodic-expire-invitations","taskName":"expire-invitations","nextDate":"2026-09-21T22:00:00.000Z"}}
papra | {"level":"debug","message":"Consuming job","timestampMs":1790017718813,"namespace":"tasks:services","data":{"processMode":"all","jobId":"periodic-purge-expired-organizations","taskName":"purge-expired-organizations"}}
papra | {"level":"info","message":"Found expired soft-deleted organizations to purge","timestampMs":1790017718814,"namespace":"organizations:tasks:purgeExpiredOrganizations","data":{"processMode":"all","organizationCount":0}}
papra | {"level":"info","message":"Purged expired soft-deleted organizations","timestampMs":1790017718814,"namespace":"organizations:tasks:purgeExpiredOrganizations","data":{"processMode":"all","purgedOrganizationCount":0,"totalOrganizationCount":0}}
papra | {"level":"info","message":"Job rescheduled","timestampMs":1790017718815,"namespace":"tasks:services","data":{"processMode":"all","jobId":"periodic-purge-expired-organizations","taskName":"purge-expired-organizations","nextDate":"2026-09-21T23:00:00.000Z"}}
papra | {"level":"debug","message":"Consuming job","timestampMs":1790017718815,"namespace":"tasks:services","data":{"processMode":"all","jobId":"periodic-purge-expired-kv-entries","taskName":"purge-expired-kv-entries"}}
papra | {"level":"info","message":"Purged expired kv-store entries","timestampMs":1790017718816,"namespace":"kv-store:tasks:purgeExpiredEntries","data":{"processMode":"all","deletedCount":0}}
papra | {"level":"info","message":"Job rescheduled","timestampMs":1790017718817,"namespace":"tasks:services","data":{"processMode":"all","jobId":"periodic-purge-expired-kv-entries","taskName":"purge-expired-kv-entries","nextDate":"2026-09-22T00:00:00.000Z"}}
papra | {"level":"info","message":"Request completed","timestampMs":1790017721312,"namespace":"app","data":{"processMode":"all","requestId":"req_eg4qhgeg75tae2exzzojvx7c","status":200,"method":"GET","path":"/","routePath":"/*","durationMs":10}}
papra | {"level":"info","message":"Request completed","timestampMs":1790017726215,"namespace":"app","data":{"processMode":"all","requestId":"req_en8z9sw40idige967ngrbbar","status":200,"method":"GET","path":"/","routePath":"/*","userAgent":"Go-http-client/1.1","durationMs":2}}
papra | {"level":"info","message":"Request completed","timestampMs":1790017727165,"namespace":"app","data":{"processMode":"all","requestId":"req_bgf25nj36w94xq7hg7if2oxb","status":200,"method":"GET","path":"/","routePath":"/*","userAgent":"curl/8.14.1","durationMs":1,"ip":"192.168.0.180"}}
papra | {"level":"error","message":"Invalid password","timestampMs":1790017727349,"namespace":"auth","data":{"processMode":"all","requestId":"req_qlifc5palzqxhboc7cnnzjxt","args":[]}}
papra | {"level":"info","message":"Request completed","timestampMs":1790017727353,"namespace":"app","data":{"processMode":"all","requestId":"req_qlifc5palzqxhboc7cnnzjxt","status":401,"method":"POST","path":"/api/auth/sign-in/email","routePath":"/api/auth/*","userAgent":"curl/8.14.1","durationMs":164,"ip":"192.168.0.180"}}
papra | {"level":"info","message":"Request completed","timestampMs":1790017727532,"namespace":"app","data":{"processMode":"all","requestId":"req_mzt74qmfroocv6jgiar9wemj","status":200,"method":"POST","path":"/api/auth/sign-in/email","routePath":"/api/auth/*","userAgent":"curl/8.14.1","durationMs":148,"ip":"192.168.0.180"}}