diff --git a/.hop/records/prompts/P_06FN84AZZY5522SG2JM2ZG0.json b/.hop/records/prompts/P_06FN84AZZY5522SG2JM2ZG0.json new file mode 100644 index 0000000..b8d62f2 --- /dev/null +++ b/.hop/records/prompts/P_06FN84AZZY5522SG2JM2ZG0.json @@ -0,0 +1,16 @@ +{ + "id": "P_06FN84AZZY5522SG2JM2ZG0", + "task_id": "T_06FN84AZZXE6KYXF74S8CC8", + "attempt_id": "AT_06FN84AZZW55WFZ0YRCWJW0", + "state_id": "P_06FN84AZZY5522SG2JM2ZG0", + "prompt": "# Files mentioned by the user:\n\n## Screenshot 2026-07-11 at 7.02.34 PM.png: /Users/christopher/Desktop/Screenshot 2026-07-11 at 7.02.34 PM.png\n\n## My request for Codex:\nwhy do most of my prompts show as \"accepted\" and not \"completed\" even tho they were complete?", + "agent_name": "codex", + "status": "proposed", + "created_at": "2026-07-12T02:04:12.671481Z", + "metadata": { + "source_tree": "4e36b4521e738fed9e1132ca887716e852bdd6cc", + "git_commit": "077035fa84d8515d1b9e858b8555992ba3f13ad5", + "attempt_head": "C_06FN85TW1YN1Q81935DHM9G", + "attempt_head_kind": "checkpoint" + } +} diff --git a/.hop/records/prompts/P_06FN850DXWYW6XGK206YBFG.json b/.hop/records/prompts/P_06FN850DXWYW6XGK206YBFG.json new file mode 100644 index 0000000..b561ce7 --- /dev/null +++ b/.hop/records/prompts/P_06FN850DXWYW6XGK206YBFG.json @@ -0,0 +1,16 @@ +{ + "id": "P_06FN850DXWYW6XGK206YBFG", + "task_id": "T_06FN84AZZXE6KYXF74S8CC8", + "attempt_id": "AT_06FN84AZZW55WFZ0YRCWJW0", + "state_id": "P_06FN850DXWYW6XGK206YBFG", + "prompt": "thats even more confusing, because a bunch of my prompts say completed and wouldnt get the checkmark even though they were done. wtf", + "agent_name": "codex", + "status": "proposed", + "created_at": "2026-07-12T02:07:08.271882Z", + "metadata": { + "source_tree": "4e36b4521e738fed9e1132ca887716e852bdd6cc", + "git_commit": "de8dbcc63dbbb93fb6e9b89a9a31ff4032a07695", + "attempt_head": "C_06FN85TW1YN1Q81935DHM9G", + "attempt_head_kind": "checkpoint" + } +} diff --git a/.hop/records/prompts/P_06FN85EM0BXESEPJXYW4CMR.json b/.hop/records/prompts/P_06FN85EM0BXESEPJXYW4CMR.json new file mode 100644 index 0000000..91e9e95 --- /dev/null +++ b/.hop/records/prompts/P_06FN85EM0BXESEPJXYW4CMR.json @@ -0,0 +1,17 @@ +{ + "id": "P_06FN85EM0BXESEPJXYW4CMR", + "task_id": "T_06FN84AZZXE6KYXF74S8CC8", + "attempt_id": "AT_06FN84AZZW55WFZ0YRCWJW0", + "state_id": "P_06FN85EM0BXESEPJXYW4CMR", + "prompt": "ok implement", + "agent_name": "codex", + "status": "proposed", + "response_summary": "Clarify successful prompts as completed and separately mark applied outcomes", + "created_at": "2026-07-12T02:09:04.514496Z", + "metadata": { + "source_tree": "4e36b4521e738fed9e1132ca887716e852bdd6cc", + "git_commit": "0e1244afdd0162d8bfa57e19188d36bb205bc2f0", + "attempt_head": "C_06FN85TW1YN1Q81935DHM9G", + "attempt_head_kind": "checkpoint" + } +} diff --git a/deploy/gitea/public/assets/css/hop-prompts.css b/deploy/gitea/public/assets/css/hop-prompts.css index df6797b..320c7a4 100644 --- a/deploy/gitea/public/assets/css/hop-prompts.css +++ b/deploy/gitea/public/assets/css/hop-prompts.css @@ -105,8 +105,12 @@ } .hop-prompt__meta { + align-items: center; color: var(--color-text-light-2); + display: flex; font-size: 0.82rem; + flex-wrap: wrap; + justify-content: flex-end; text-align: right; } @@ -115,10 +119,23 @@ color: var(--color-text-light-2); display: inline-flex; gap: 0.4rem; - margin-right: 0.55rem; } -.hop-prompt__status::before { +.hop-prompt__status-icon { + align-items: center; + background: var(--color-green); + border-radius: 50%; + color: var(--color-body); + display: inline-flex; + font-size: 0.65rem; + font-weight: 700; + height: 1rem; + justify-content: center; + line-height: 1; + width: 1rem; +} + +.hop-prompt__status:not([data-status="completed"])::before { background: var(--color-text-light-3); border-radius: 50%; content: ""; @@ -126,11 +143,21 @@ width: 0.45rem; } -.hop-prompt__status[data-status="completed"]::before { background: var(--color-green); } .hop-prompt__status[data-status="failed"]::before { background: var(--color-red); } .hop-prompt__status[data-status="cancelled"]::before { background: var(--color-orange); } .hop-prompt__status[data-status="running"]::before { background: var(--color-primary); } +.hop-prompt__applied { + border: 1px solid var(--color-secondary-dark-2); + border-radius: var(--border-radius); + color: var(--color-text); + font-size: 0.72rem; + font-weight: 600; + line-height: 1.4; + margin: 0 0.55rem; + padding: 0.05rem 0.38rem; +} + .hop-prompt__body { border-top: 1px solid var(--color-secondary); display: grid; diff --git a/deploy/gitea/public/assets/js/hop-native.js b/deploy/gitea/public/assets/js/hop-native.js index 8c9f125..b16af8e 100644 --- a/deploy/gitea/public/assets/js/hop-native.js +++ b/deploy/gitea/public/assets/js/hop-native.js @@ -246,9 +246,17 @@ const request = makeElement('div', 'hop-prompt__request', prompt.prompt); request.title = prompt.prompt; const meta = makeElement('div', 'hop-prompt__meta'); - const status = makeElement('span', 'hop-prompt__status', prompt.status || 'running'); - status.dataset.status = prompt.status || 'running'; + const rawStatus = prompt.status || 'running'; + const successful = rawStatus === 'completed' || rawStatus === 'accepted'; + const status = makeElement('span', 'hop-prompt__status', successful ? 'Completed' : rawStatus); + status.dataset.status = successful ? 'completed' : rawStatus; + if (successful) status.prepend(makeElement('span', 'hop-prompt__status-icon', '✓')); meta.append(status); + if (rawStatus === 'accepted') { + const applied = makeElement('span', 'hop-prompt__applied', 'Applied'); + applied.title = 'This prompt\'s changes were accepted into the shared repository state'; + meta.append(applied); + } const agent = [prompt.agent_name, prompt.agent_model].filter(Boolean).join(' · '); meta.append(document.createTextNode(agent || formatTime(prompt.created_at))); summary.append(request, meta);