[Demo] Add Mol* 3D protein structure viewer to target detail pages done coding:8

← Demo
IMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features. ## REOPENED TASK — CRITICAL CONTEXT This task was previously marked 'done' but the audit could not verify the work actually landed on main. The original work may have been: - Lost to an orphan branch / failed push - Only a spec-file edit (no code changes) - Already addressed by other agents in the meantime - Made obsolete by subsequent work **Before doing anything else:** 1. **Re-evaluate the task in light of CURRENT main state.** Read the spec and the relevant files on origin/main NOW. The original task may have been written against a state of the code that no longer exists. 2. **Verify the task still advances SciDEX's aims.** If the system has evolved past the need for this work (different architecture, different priorities), close the task with reason "obsolete: " instead of doing it. 3. **Check if it's already done.** Run `git log --grep=''` and read the related commits. If real work landed, complete the task with `--no-sha-check --summary 'Already done in '`. 4. **Make sure your changes don't regress recent functionality.** Many agents have been working on this codebase. Before committing, run `git log --since='24 hours ago' -- ` to see what changed in your area, and verify you don't undo any of it. 5. **Stay scoped.** Only do what this specific task asks for. Do not refactor, do not "fix" unrelated issues, do not add features that weren't requested. Scope creep at this point is regression risk. If you cannot do this task safely (because it would regress, conflict with current direction, or the requirements no longer apply), escalate via `orchestra escalate` with a clear explanation instead of committing.

Last Error

cli-reopen-manual: reopened — task was marked 'done' but has no task_runs row in (done/completed/success)

Git Commits (1)

[Verify] Mol* 3D viewer already on target detail pages — mark resolved [task:85462d30-9a2f-4026-b63e-ab4858e79904]2026-04-23
Spec File

[Demo] Add Mol* 3D protein structure viewer to target detail pages

ID: dcd7455c-ee4 Priority: 96 Type: one_shot Status: open

Goal

[Demo] Add Mol* 3D protein structure viewer to target detail pages

Acceptance Criteria

☐ Concrete deliverables created
☐ Work log updated with timestamped entry

Work Log

2026-04-23T15:38:28Z — Watchdog verification

  • Root cause: stale duplicate demo task. Target-detail Mol* support had already landed on main via related target-page work, but this task remained open with a thin spec and no verification note, causing the abandonment watchdog to keep retrying it.
  • Verified current api.py target route has a PDB-preferred / AlphaFold-fallback Mol* block for /target/{target_id} (molstar-target-details, PDBeMolstarPlugin, pdb_id, and uniprot_id handling).
  • Verified database coverage: 152 targets have pdb_id values and 169 targets have uniprot_id values.
  • Ran python3 -m py_compile api.py successfully.
  • Rendered api.target_detail("target-gabra1") in-process: returned 101,762 bytes with 29 Mol*/structure markers, included PDB 6D6U, and included molstar-target-details.
  • Live curl to the running API timed out even for /; service logs showed unrelated connection-pool/cache warnings, so route verification used the worktree code and PostgreSQL directly.

Already Resolved — 2026-04-23T15:38:28Z

  • Evidence: api.target_detail("target-gabra1") renders a target detail page containing molstar-target-details, PDBeMolstarPlugin, Mol*, and PDB 6D6U; python3 -m py_compile api.py passed; PostgreSQL has 152 target rows with PDB IDs and 169 with UniProt IDs.
  • Commit: 698ed86b2d0b08da8ecfbbd596b07d4846e10306 contains the current target Mol viewer block in api.py; related verification commit 497c0770e3f11613a52926fe8f340ec17efdd4f3 documented target-page 500 and Mol viewer resolution for task 08d47950-507b-4b93-bb23-d5587b012a5f; structural data population landed via fb3f195614efbe23322da3eda207b7314338e17e.
  • Summary: Original task is complete on main; no duplicate code change is needed.

Payload JSON
{
  "requirements": {
    "coding": 8
  },
  "_stall_skip_providers": [
    "minimax"
  ],
  "_stall_requeued_by": "minimax",
  "_stall_requeued_at": "2026-04-14 12:19:22",
  "_stall_skip_at": {},
  "_stall_skip_pruned_at": "2026-04-14T10:37:14.022390+00:00",
  "_watchdog_repair_task_id": "8e319f5a-9e32-4f9d-9fe3-6bd3b5561de1",
  "_watchdog_repair_created_at": "2026-04-23T15:32:54.029458+00:00",
  "_reset_note": "This task was reset after a database incident on 2026-04-17.\n\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\ncorruption. Some work done during Apr 16-17 may have been lost.\n\n**Before starting work:**\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\n\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\nSCIDEX_DB_BACKEND=postgres env var.",
  "_reset_at": "2026-04-18T06:29:22.046013+00:00",
  "_reset_from_status": "done"
}

Sibling Tasks in Quest (Demo) ↗

Task Dependencies

↓ Referenced by (downstream)