Checklist

21 of 29 complete
  • Create fresh private intake/general-curated/Spiritech-curated/worker repositories and restricted credentials. Configure portal-client spiritech_beta role and trusted client-scoped claim policy; verify infrastructure and unattended ChatGPT setup. Leave legacy trackers unchanged; no migration at launch.
  • Deliver immutable authenticated reports, durable private upload staging/quarantine and native Forgejo evidence; ZIP-wrap unsupported types preserving bytes. Verify quotas, streaming, scanning, checksum/asset reconciliation and safe recovery from ambiguous issue/file delivery.
  • Deliver shared General and spiritech_beta-role-gated Spiritech submission/catalogue flows with server-owned audience routing and My reports. Verify isolation across crafted POSTs, wrong-client roles, direct IDs, search/counts, caches, files, duplicate links and role revocation.
  • Deliver one ChatGPT-through-Pi read-only analysis pipeline and restricted non-destructive executor for General and Spiritech; enforce product/audience destinations and no automatic beta-to-general exposure. Staff review stays in Forgejo. Verify injection boundaries, idempotency and human-edit protection.
  • Build fresh worker repository with daily/manual pinned Pi workflow, reusing inspected patterns without changing existing triage-runner/beta automation. Provision image/secrets/auth; verify locking/audit/failure handling, manual dry-run and timer execution for both product paths.
  • Validate portal/worker, SQL crash/race handling, Forgejo edge cases and hostile-file/output boundaries. Exercise real General and portal-client spiritech_beta-role login flows, wrong-client role rejection, revocation and cross-audience isolation. Launch fresh repositories; no legacy migration, rehearsals, restore exercises or DB rollback strategy.
  • Rework triage for scarce staff: prioritize same-audience duplicate detection across fresh intake/curated history, check recent develop fixes and open PRs, and produce actionable developer handoffs without requiring root-cause proof. Separate publication pause from review; validate that only genuine safety/ambiguity exceptions require staff, with preserved evidence and human overrides.
  • Published audience-specific README.md to main in all three reporting trackers with user authorization: player-bug-intake fe014bd, player-known-issues 78a8138, spiritech-known-issues dc43ff0. Verified staff commands, labels, proposal schema, bounded comment context and publication behavior against implementation; formatting/example JSON checks pass. Remote main hashes match local commits and all three checkouts are clean.
  • Allow triage to correct a misfiled General report to Spiritech with durable routing audit and fresh destination-scoped duplicate/code context. Preserve original submissions/evidence, prevent automatic visibility widening, and verify retries plus existing-publication handling before live correction.
  • Implement and locally verify fresh tester daily-quota exemptions, native clipboard screenshot insertion through the existing upload pipeline, and audience-authorized validated evidence rendering/downloads without an approval workflow.
  • Implement and locally verify structured known-issue reproduction content, topic tags/filtering, private source/evidence backlinks and deterministic linked-intake closure/reopening with staff overrides and ambiguous-reply safeguards.
  • Release migration008 and portal v3 before worker v3 without restarting game engines; audit and reprocess affected overnight reports, verify production publication/evidence/audience/lifecycle behavior and the next scheduled run. Preserve original reports and files.
  • Configure and verify visible Forgejo CI deployment after successful worker-main tests: existing restricted SSH transport, main-revision validation, shared triage lock, clean fast-forward source, revision-tagged images, portal-v3 readiness gate, analyzer-only activation/rollback and unchanged daily triage scheduler. No deployment polling timer.
  • Remove duplicate readable known-issue comments, render owned attachment references as clickable links in the tracker body, retain one compact immutable portal metadata comment per revision, and safely tidy the three already-published entries without touching originals.
  • Embed supported MP4/M4V/WebM evidence on portal known issues with controls, seeking/authorized byte ranges and HEAD, no autoplay, signature checks and original download fallback; verify real browser playback and audience isolation.
  • Reproduce and fix repeated recategorization after General-to-Spiritech correction, distinguish current routing from historical submission metadata, and add credential-safe stage/contract failure diagnostics. Verify saved-input real-model replay before resuming publication.
  • Implemented POST /api/bug-worker/import with existing bearer authentication, source-derived identity/audience, stable retries and changed-content conflicts, validated text/source backlinks, no schema changes, and normal delivery/worker claiming. Portal tests via SDK8 CI image: 153 passed, 20 SQL-dependent skipped; diff check clean. API documented in PRK.PlayerPortal/README.md. Not deployed; local bulk import and attachment binaries remain follow-up work; old trackers untouched.
  • Completed the user-approved import of all 17 open Spiritech issues; excluded all 41 closed issues. Intake #22–#38 are unique, Spiritech-routed and were verified triage:ready. Verified every delivered report field against stable local payloads; pilot retries returned 200 with identical IDs and no duplicate creation. Preserved descriptions, 13 attributed comments and 16 absolute attachment links without truncation; rephrased one private workflow reference. Source states/update timestamps unchanged. Private snapshots, receipts and mapping: ~/.local/state/prk/legacy-imports/spiritech-open-20261019T144636Z. Subsequently repaired 11 escaped image embeds in 9 intake bodies (#22,26,28,29,31,35,36,37,38); verified actual Forgejo Markdown rendering and unchanged technical JSON/title/state/labels/assignees/comments. Before/after backups in image-repair/. No application changes, forced triage or publication; attachment binaries remain in legacy tracker.
  • Code fix committed as be427a964, PR #2744 https://git.project-rk.com/prk/engines/pulls/2744, branch fix/reconcile-triage-workflow-labels in isolated ~/Projects/worktrees/engines-triage-labels. Central mutually exclusive primary states; durable staff-command acknowledgement/retry with newer-command protection; controls and descriptive/current work-context tags preserved. Latest-develop validation: 163 portal tests passed, 20 SQL-dependent skipped; diff clean. Production code deployment remains unverified. User-authorized manual cleanup completed: removed exactly ready/requested (20 labels) from intake #5–#14 after read-only SQL confirmed terminal idle decisions and comment histories proved all request IDs acknowledged, none newer. Preserved nine complete states and #10 needs-staff-review, plus fix-in-development tags. Verified issue text/state/comments/assets unchanged and all ten database report/decision records exactly unchanged, including revisions/leases/processed IDs; no rerun. Pending imports #22–#38 left ready/untouched. Private before/after snapshots and receipts: ~/.local/state/prk/label-cleanup/20261019. Forgejo atomic label/comment race limitation remains documented. Unrelated deployment checkout untouched.
  • Production reporting analyzer switched to openai-codex/gpt-5.6-terra. Verified exact model exists in deployed runtime catalogue and dedicated provider auth is configured. Persisted TRIAGE_MODEL in /etc/prk-reporting-worker.env, under shared nonblocking reporting lock with no controller running; recreated only analyzer using the same pinned image SHA e4ae0f028c75a51c95b6bf35b71e7dffb445bb223fe8e8d6561f446014f7c645. Runtime environment matches target and /health succeeds. Medium reasoning/budgets, scheduler, code snapshot, portal and game engines unchanged. No triage started or provider inference performed; actual model-account access remains to be exercised in the first approved run.
  • Started production GPT-5.6 Terra triage for exactly imported intake #22–#38 (17 fixed report IDs), in batches of 8/8/1 under the shared reporting lock. Transient service prk-spiritech-terra-20261019.service on git-prk-server; durable status/logs at /var/lib/prk-reporting-runs/spiritech-20261019-terra. First report (intake #22, db9b135a-6132-1954-5be1-916c5d25e686) produced a known proposal accepted by portal, confirming real provider access; batch 1 remains running. No automatic retries on controller failure; no unrelated claims or old-report retriage. Refreshed checksummed filtered code snapshot from clean latest develop f60c1d59aa4fc24ca83a55f91aaabd6e0bccc342, manifest tree 3677f47e5d569c747a950a2d9e48b8036a07e5d1af374823c41e17cd00378c6e, 5149 files, before starting; analyzer image/model unchanged and health verified. Previous snapshot retained as code.previous-spiritech-terra. Local archive/selection/provenance: ~/.local/state/prk/triage-runs/spiritech-20261019-terra. Await remaining analyses and verify final decisions/labels/publications; do not mark complete on proposal acceptance alone.
  • Implementation complete in isolated engines worktree ~/Projects/worktrees/engines-private-triage and worker worktree ~/Projects/worktrees/player-reporting-worker-private-triage, both branch fix/automate-private-sensitive-triage; not committed/deployed. Sensitive/uncertain/unsafe-publication-text reports automatically create actionable private-only developer issues (or safe duplicate links), with sticky report/cache privacy flags, no public manifests, catalogue/evidence/My reports denial, and no staff approval gate. Ordinary handoffs get developer issues even with publication paused. Changed source content/targets queue automatic analysis; actual safety/ownership/hold/technical failures remain blocked, not fabricated successes. Quarantined evidence stays withheld while a private handoff proceeds. Internal lifecycle snapshots close/reopen linked originals and both canonical/intake duplicates for private and unpublished issues; tests preserve manual overrides, holds and lost-ack ownership. Additive migration 009 backfills privacy, withdraws affected caches and resumes saved known/uncertain review decisions like #10 without re-running the model or unrelated completed reports; real-SQL migration/idempotency tests pass. Worker prompt/helper/docs and local full-stack scenarios aligned; JSON contract unchanged. Validation: 198 portal tests passed including SQL, 3 separate game-database tests skipped; worker 30 Node tests + 12 deployment tests passed; changed JS syntax and both diffs clean. Full-stack browser scenario updated/syntax-checked but not run. Rollout remains outstanding: deploy portal/migration009 first, then worker prompt update; verify #10/private lifecycle in production before completing operational acceptance. Unrelated deployment checkout untouched.
  • Completed live staff retriage training for intake #36 using Oatbag's own comment #38062 ('not duplicate, want to track separately'); no operator comment, forced reset or manual classification. Authorized user105 in live StaffUserIds, portal same image healthy; Oatbag/user added the currently required tag, which portal consumed and queued ready. Public edge404 was repaired by the other deployment agent; verified public root200 and authenticated targeted preview200 with correct Spiritech report and Oatbag clarification included. Ran production gpt-5.6-terra controller only for report0ad05ad7-9251-4fed-8a8f-ae66a6a827fb under shared reporting lock. Exactly one proposal accepted/applied; fresh audit #38071 and duplicate backlink #38073, final triage:duplicate to prk/spiritech-known-issues#23. Model still judged perk-preview action information covered by #23 despite its broader timer scope; retriage requests analysis rather than forcing the requested classification. No unrelated reports processed; pending new code not deployed. Host receipt/logs /var/lib/prk-reporting-runs/retriage-36-comment38062; private local before/after comments/issue at ~/.local/state/prk/retriage-36-comment38062.
  • Implemented in pending private-triage worktrees: authorized retriage marker comment alone queues once, with optional legacy requested labels consumed after durable handling. Staff allowlist, ownership, holds/hidden controls, active leases and processed-comment idempotency preserved; optional corrected proposals still retain their separate approved signal. LF/CRLF and marker-only comments supported consistently. Added seven regression cases for comment-only operation, unauthorized authors, deferred holds/leases and repeated polling. Removed redundant local helper label creation; docs updated. Validation: 205 portal tests passed including real SQL, 3 game-DB tests skipped; 30 Node + 12 deployment tests passed, JS syntax/diffs clean. Not committed/deployed; live staff test still uses the prior tag-required version.
  • Implemented in existing pending engines/worker private-triage worktrees, not committed/deployed. Explicitly negotiated v4 jobs separate staffInstructions[{commentId,authorId,text}] from ordinary staffNotes: only actual current intake-comment authors on StaffUserIds, excluding bot, are promoted; imported attribution and role claims remain untrusted. Latest ten verified comments are independently bounded/sorted, preserving v1–v3 wire shapes and mixed legacy notes as untrusted. Worker requires v4, fails on downgraded jobs, preserves redaction, exposes instructions separately in model prompt and gives explicit staff separation direction precedence over default deduplication, while privacy/audience/tool constraints remain non-overridable. Prompt requires acknowledging applicable comment IDs/effect; analyzer prompt-attempt and accepted-proposal diagnostics record included IDs without raw text (input inclusion, not proof of comprehension). Deployment readiness now negotiates v4 before building/activation; existing proposal JSON unchanged and no new migration beyond009. Tests cover verified vs forged/bot/historical discussion, current allowlist/revocation, bounds, legacy compatibility, downgrade rejection, instruction forwarding/redaction and v4 features. Validation: 207 portal tests passed including SQL, 3 game-DB tests skipped; 33 Node+12 deployment tests passed; JS syntax/diffs clean. Full-stack/real-model obedience test not run. Deploy portal/v4/migration009 before worker; no live rerun or service changes performed.
  • Deliver one detached invocation-time diagnostic snapshot preserving existing .bug coverage, UTC capture/server metadata and existing client-reported version. Stage through server-scoped engine authentication with bounded storage, correlation-id retries and expiring hashed tokens. Verify synchronized capture, completeness/missing sections, limits, auth/server isolation, retry conflicts, cleanup and no sensitive logging.
  • Deliver ownership-checked handoff into the existing portal Submit form: preserved login return, non-consuming GET, issuer/subject-bound resumable draft and clean URL, stable submission ID, context preview/environment prefill and permission-gated product suggestion. Verify current game-account/server/email ownership trust, wrong-owner recovery, expiry, reload, validation, role isolation and token/referrer-log protection.
  • Atomically complete the draft and associate server-owned immutable private diagnostics with normal report/uploads/delivery intent. Verify SQL rollback/concurrent tabs/lost acknowledgements, quota/validation draft retention and same-receipt retries. Deliver full context into private intake/authorized analysis, never ordinary publishable uploads/catalogue projections; preserve no-game-assembly coordinator boundary and unchanged direct reporting.
  • Replace .bug paste-store/legacy links and snapshot Console output with one Continue bug report link, clear staging-versus-submission wording and honest no-context portal fallback. Document coordinated portal/coordinator/schema-before-engine configuration. Verify signed-in/out real-browser completion with screenshot upload plus actual in-game /start on supported clients, full privacy/security regressions and unchanged direct reports. No rollout/restarts without separate authorization.
Project
engines
Kind
Feature
Task ID
tsk_4cwztt3jmn
Updated