diff --git a/.hop/records/prompts/P_06FN531CDHT41Z5TNNV77FG.json b/.hop/records/prompts/P_06FN531CDHT41Z5TNNV77FG.json
deleted file mode 100644
index 18037ec..0000000
--- a/.hop/records/prompts/P_06FN531CDHT41Z5TNNV77FG.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "id": "P_06FN531CDHT41Z5TNNV77FG",
- "task_id": "T_06FN4JDW51KJ8GC0YKC8ZW0",
- "attempt_id": "AT_06FN531CDJPYM3W0Z1B6ETR",
- "state_id": "P_06FN531CDHT41Z5TNNV77FG",
- "prompt": "Resolve proposal R_06FN52GWVYQ4NW8698BVG98 (Simplify the homepage around agent-first automation, automatic conflict reconciliation, and the benefits over standard Git) against accepted state A_06FN51R8W61WPV08RNCWWY0 (Keep renamed repository tabs sized to their visible Hop labels). Preserve both compatible intents. Inspect both input states for structural, delete/rename, mode, symlink, or binary conflicts that may have no text markers; resolve every conflict intentionally, remove all merge markers, run hop check, propose the result, and land it without asking the user to coordinate the merge. Conflict candidates: deploy/gitea/templates/home.tmpl",
- "agent_name": "codex",
- "status": "accepted",
- "response_summary": "Reconcile the agent-first homepage with the latest accepted repository navigation updates",
- "created_at": "2026-07-11T18:59:05.964917Z",
- "metadata": {
- "source_tree": "7452e258a1b0a2caa9106055572043f0915d2f34",
- "git_commit": "1d36bda2a2c76295b81fc1aa0ab27f77c9364258",
- "attempt_head": "R_06FN53GJ19YH4AG7YMPVS60",
- "attempt_head_kind": "proposal"
- }
-}
diff --git a/.hop/records/prompts/P_06FN577KX4B98J5R1166JP8.json b/.hop/records/prompts/P_06FN577KX4B98J5R1166JP8.json
deleted file mode 100644
index 13a8e98..0000000
--- a/.hop/records/prompts/P_06FN577KX4B98J5R1166JP8.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "id": "P_06FN577KX4B98J5R1166JP8",
- "task_id": "T_06FN50V05VH5V9WE9QQF9KR",
- "attempt_id": "AT_06FN577KX6C4ZW41DDMW1KR",
- "state_id": "P_06FN577KX4B98J5R1166JP8",
- "prompt": "Resolve proposal R_06FN5765G6VRPVXJZ8P1RB0 (Restore the user-supplied Hop logo across all Gitea brand assets) against accepted state A_06FN53K5SA61CBF0QR1S1Q0 (Reconcile the agent-first homepage with the latest accepted repository navigation updates). Preserve both compatible intents. Inspect both input states for structural, delete/rename, mode, symlink, or binary conflicts that may have no text markers; resolve every conflict intentionally, remove all merge markers, run hop check, propose the result, and land it without asking the user to coordinate the merge. Conflict candidates: deploy/gitea/templates/custom/footer.tmpl",
- "agent_name": "codex",
- "status": "accepted",
- "response_summary": "Restore the supplied Hop logo while preserving the accepted agent-first homepage",
- "created_at": "2026-07-11T19:17:25.609556Z",
- "metadata": {
- "source_tree": "912888c9f501ac6479bee5fc7c64ad7d2b9976ff",
- "git_commit": "dce152e3f11ba8a9708f452db1f364405ec7e0c4",
- "attempt_head": "R_06FN57D4YE5B29F00S71WP8",
- "attempt_head_kind": "proposal"
- }
-}
diff --git a/.hop/records/prompts/P_06FN59TV2S6V2HTCN6W30ZG.json b/.hop/records/prompts/P_06FN59TV2S6V2HTCN6W30ZG.json
deleted file mode 100644
index fd1da8e..0000000
--- a/.hop/records/prompts/P_06FN59TV2S6V2HTCN6W30ZG.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "id": "P_06FN59TV2S6V2HTCN6W30ZG",
- "task_id": "T_06FN50V05VH5V9WE9QQF9KR",
- "attempt_id": "AT_06FN59TV2SAYD23BXX9570G",
- "state_id": "P_06FN59TV2S6V2HTCN6W30ZG",
- "prompt": "Resolve proposal R_06FN59SCMVEV9N9GM38HREG (Serve only the supplied Hop favicon from the initial document head) against accepted state A_06FN58S7V5N6ETGRWG3NVM0 (Render the supplied Hop logo correctly from the first paint). Preserve both compatible intents. Inspect both input states for structural, delete/rename, mode, symlink, or binary conflicts that may have no text markers; resolve every conflict intentionally, remove all merge markers, run hop check, propose the result, and land it without asking the user to coordinate the merge. Conflict candidates: deploy/gitea/install-hop-native.sh, deploy/gitea/templates/custom/footer.tmpl",
- "agent_name": "codex",
- "status": "accepted",
- "response_summary": "Reconcile first-paint logo rendering with a single cache-busted favicon source",
- "created_at": "2026-07-11T19:28:47.382862Z",
- "metadata": {
- "source_tree": "62a2fcf4a7893545b0f4150fb8ed02e16455aa26",
- "git_commit": "5b36c400f529eaf8e9b2f175644a1832e1fa3266",
- "attempt_head": "R_06FN5A0XSK27RAMA9V3MA88",
- "attempt_head_kind": "proposal"
- }
-}
diff --git a/.hop/records/prompts/P_06FN5CRY3KT14T96RGEJEVG.json b/.hop/records/prompts/P_06FN5CRY3KT14T96RGEJEVG.json
deleted file mode 100644
index 4037e99..0000000
--- a/.hop/records/prompts/P_06FN5CRY3KT14T96RGEJEVG.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "id": "P_06FN5CRY3KT14T96RGEJEVG",
- "task_id": "T_06FN50V05VH5V9WE9QQF9KR",
- "attempt_id": "AT_06FN5CRY3J9322XVY1HMMA0",
- "state_id": "P_06FN5CRY3KT14T96RGEJEVG",
- "prompt": "Resolve proposal R_06FN5CQ5X5Q5TMF8B19Y75R (Place the Hop robot mascot prominently beside the homepage hero) against accepted state A_06FN5A2J0W5SHTFGGJKVD10 (Reconcile first-paint logo rendering with a single cache-busted favicon source). Preserve both compatible intents. Inspect both input states for structural, delete/rename, mode, symlink, or binary conflicts that may have no text markers; resolve every conflict intentionally, remove all merge markers, run hop check, propose the result, and land it without asking the user to coordinate the merge. Conflict candidates: deploy/gitea/templates/home.tmpl",
- "agent_name": "codex",
- "status": "accepted",
- "response_summary": "Reconcile the accepted homepage with its prominent robot mascot hero",
- "created_at": "2026-07-11T19:41:38.204167Z",
- "metadata": {
- "source_tree": "21ef8bb1b0c6b096479be0c90301a02435b88b9a",
- "git_commit": "25d5dbe5a609b0a1cd64c081226e3ccca0276db3",
- "attempt_head": "R_06FN5CZ847XQQ480QZYYFTR",
- "attempt_head_kind": "proposal"
- }
-}
diff --git a/.hop/records/prompts/P_06FN5F2NXABZV66VSFAXCA0.json b/.hop/records/prompts/P_06FN5F2NXABZV66VSFAXCA0.json
deleted file mode 100644
index fd10b2e..0000000
--- a/.hop/records/prompts/P_06FN5F2NXABZV66VSFAXCA0.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "id": "P_06FN5F2NXABZV66VSFAXCA0",
- "task_id": "T_06FN50V05VH5V9WE9QQF9KR",
- "attempt_id": "AT_06FN5F2NX90QCXGZC75YXVG",
- "state_id": "P_06FN5F2NXABZV66VSFAXCA0",
- "prompt": "Resolve proposal R_06FN5F0W3XJ8JTZ5E0Y7KAG (Gate first paint until Hop semantics are applied synchronously) against accepted state A_06FN5D0QEMY5BNEY1J9Q20G (Reconcile the accepted homepage with its prominent robot mascot hero). Preserve both compatible intents. Inspect both input states for structural, delete/rename, mode, symlink, or binary conflicts that may have no text markers; resolve every conflict intentionally, remove all merge markers, run hop check, propose the result, and land it without asking the user to coordinate the merge. Conflict candidates: deploy/gitea/templates/custom/footer.tmpl, deploy/gitea/templates/custom/header.tmpl",
- "agent_name": "codex",
- "status": "accepted",
- "response_summary": "Reconcile the mascot homepage with a synchronous no-flash Hop UI gate",
- "created_at": "2026-07-11T19:51:42.314136Z",
- "metadata": {
- "source_tree": "bb0c2d3d3554edea34e1333080188cf57f6e3939",
- "git_commit": "46675ef0387b7843489d73097f4b20dad7556237",
- "attempt_head": "R_06FN5F91MYCDBBM8RZ85N0G",
- "attempt_head_kind": "proposal"
- }
-}
diff --git a/.hop/records/prompts/P_06FN5J4ZA8YM3HVQM4G6W88.json b/.hop/records/prompts/P_06FN5J4ZA8YM3HVQM4G6W88.json
deleted file mode 100644
index 77a7575..0000000
--- a/.hop/records/prompts/P_06FN5J4ZA8YM3HVQM4G6W88.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "id": "P_06FN5J4ZA8YM3HVQM4G6W88",
- "task_id": "T_06FN50V05VH5V9WE9QQF9KR",
- "attempt_id": "AT_06FN5J4ZA8XA979AVSBCSNG",
- "state_id": "P_06FN5J4ZA8YM3HVQM4G6W88",
- "prompt": "Resolve proposal R_06FN5J34322EW3NXQCJ3XSG (Make Gitea Actions globally configurable for resource-constrained deployments) against accepted state A_06FN5FAMPMB5RMA9X6V05BR (Reconcile the mascot homepage with a synchronous no-flash Hop UI gate). Preserve both compatible intents. Inspect both input states for structural, delete/rename, mode, symlink, or binary conflicts that may have no text markers; resolve every conflict intentionally, remove all merge markers, run hop check, propose the result, and land it without asking the user to coordinate the merge. Conflict candidates: .env.example, compose.yaml, docs/production-deployment.md",
- "agent_name": "codex",
- "status": "accepted",
- "response_summary": "Reconcile production settings with globally disabled Gitea Actions support",
- "created_at": "2026-07-11T20:05:07.538808Z",
- "metadata": {
- "source_tree": "13386820c37d1bbebba028c6432a8864c3fa23e2",
- "git_commit": "e8b8ecd9aab9c0a3a3d9cff59b79eb0b3b8aa079",
- "attempt_head": "R_06FN5JG8ANPH2Q6BBKD7YMG",
- "attempt_head_kind": "proposal"
- }
-}
diff --git a/.hop/records/prompts/P_06FN6WXQF41XNQYEP0F67QR.json b/.hop/records/prompts/P_06FN6WXQF41XNQYEP0F67QR.json
deleted file mode 100644
index 1f71ea5..0000000
--- a/.hop/records/prompts/P_06FN6WXQF41XNQYEP0F67QR.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "id": "P_06FN6WXQF41XNQYEP0F67QR",
- "task_id": "T_06FN6Q6CPY9NYPA25F6DKS8",
- "attempt_id": "AT_06FN6WXQF509ZK786R6N7Z0",
- "state_id": "P_06FN6WXQF41XNQYEP0F67QR",
- "prompt": "Resolve proposal R_06FN6WVZBRQKS2051721VS0 (Publish portable Hop prompt records with the repository and render them in Prompts) against accepted state A_06FN6VDSDZSNJDKBSYY58K8 (Remove the Help link from Hop's shared top navigation). Preserve both compatible intents. Inspect both input states for structural, delete/rename, mode, symlink, or binary conflicts that may have no text markers; resolve every conflict intentionally, remove all merge markers, run hop check, propose the result, and land it without asking the user to coordinate the merge. Conflict candidates: .hop/records/prompts/P_06FN6TWMXN0M2QSSNZ6KRE8.json",
- "agent_name": "codex",
- "status": "reconciling",
- "response_summary": "hop-reconciliation-conflicts:[\".hop/records/prompts/P_06FN6TWMXN0M2QSSNZ6KRE8.json\"]",
- "created_at": "2026-07-11T23:12:00.377583Z",
- "metadata": {
- "source_tree": "ab06c502b15f48e97161c275b9dee9b17abd1e6a",
- "git_commit": "de5c69da3d773bea1d76f3868b675e6538943222",
- "attempt_head": "P_06FN6WXQF41XNQYEP0F67QR",
- "attempt_head_kind": "prompt"
- }
-}
diff --git a/.hop/records/prompts/P_06FN70A6M7ZW50T52HXH3DR.json b/.hop/records/prompts/P_06FN70A6M7ZW50T52HXH3DR.json
deleted file mode 100644
index 5286444..0000000
--- a/.hop/records/prompts/P_06FN70A6M7ZW50T52HXH3DR.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "id": "P_06FN70A6M7ZW50T52HXH3DR",
- "task_id": "T_06FN6VQDZET3E5FH6B4D4N8",
- "attempt_id": "AT_06FN70A6M65ZVCJ8K8D7TJ0",
- "state_id": "P_06FN70A6M7ZW50T52HXH3DR",
- "prompt": "Resolve proposal R_06FN7084GN5GMBHX5WCP5YG (Give the Prompts navigation tab a distinct prompt-bubble icon) against accepted state A_06FN6YW9ZERA9DGEPBNNXX8 (Force the latest Prompts client to load after partial-page navigation). Preserve both compatible intents. Inspect both input states for structural, delete/rename, mode, symlink, or binary conflicts that may have no text markers; resolve every conflict intentionally, remove all merge markers, run hop check, propose the result, and land it without asking the user to coordinate the merge. Conflict candidates: .hop/records/prompts/P_06FN6VQDZFJ89DSE4820W98.json, deploy/gitea/templates/custom/footer.tmpl",
- "agent_name": "codex",
- "status": "reconciling",
- "response_summary": "hop-reconciliation-conflicts:[\".hop/records/prompts/P_06FN6VQDZFJ89DSE4820W98.json\",\"deploy/gitea/templates/custom/footer.tmpl\"]",
- "created_at": "2026-07-11T23:26:48.993725Z",
- "metadata": {
- "source_tree": "48a0ecdbb41a845a70f061b183565ab15ae21ad3",
- "git_commit": "cc9878066ed488dd3a54f349d87d98345262ccb5",
- "attempt_head": "P_06FN70A6M7ZW50T52HXH3DR",
- "attempt_head_kind": "prompt"
- }
-}
diff --git a/.hop/records/prompts/P_06FN8363TN5B46YW8V63C6R.json b/.hop/records/prompts/P_06FN8363TN5B46YW8V63C6R.json
new file mode 100644
index 0000000..11b726d
--- /dev/null
+++ b/.hop/records/prompts/P_06FN8363TN5B46YW8V63C6R.json
@@ -0,0 +1,17 @@
+{
+ "id": "P_06FN8363TN5B46YW8V63C6R",
+ "task_id": "T_06FN8363TPFKHBQ7AD0BGX0",
+ "attempt_id": "AT_06FN8363TM39CPR0EBHR820",
+ "state_id": "P_06FN8363TN5B46YW8V63C6R",
+ "prompt": "# Files mentioned by the user:\n\n## Screenshot 2026-07-11 at 6.58.29 PM.png: /var/folders/58/b6yn15tx3jb7_6lw9m67f89m0000gn/T/TemporaryItems/NSIRD_screencaptureui_vyA0oe/Screenshot 2026-07-11 at 6.58.29 PM.png\n\n## My request for Codex:\nonce again, there are prompts here that arent mine!",
+ "agent_name": "codex",
+ "status": "proposed",
+ "response_summary": "Remove internal reconciliation prompts from GitHop",
+ "created_at": "2026-07-12T01:59:10.548995Z",
+ "metadata": {
+ "source_tree": "4e36b4521e738fed9e1132ca887716e852bdd6cc",
+ "git_commit": "077035fa84d8515d1b9e858b8555992ba3f13ad5",
+ "attempt_head": "C_06FN84MN5584C2B6BQ6YD3G",
+ "attempt_head_kind": "checkpoint"
+ }
+}
diff --git a/deploy/gitea/install-hop-native.sh b/deploy/gitea/install-hop-native.sh
index 1e9ff41..cf98440 100755
--- a/deploy/gitea/install-hop-native.sh
+++ b/deploy/gitea/install-hop-native.sh
@@ -35,6 +35,9 @@ docker compose --env-file "$env_file" cp \
docker compose --env-file "$env_file" cp \
deploy/gitea/public/assets/js/hop-native.js \
gitea:/data/gitea/public/assets/js/hop-native-v14.js
+docker compose --env-file "$env_file" cp \
+ deploy/gitea/public/assets/js/hop-native.js \
+ gitea:/data/gitea/public/assets/js/hop-native-v15.js
docker compose --env-file "$env_file" cp \
deploy/gitea/public/assets/css/hop-home.css \
gitea:/data/gitea/public/assets/css/hop-home.css
diff --git a/deploy/gitea/public/assets/js/hop-native.js b/deploy/gitea/public/assets/js/hop-native.js
index 3987f48..8c9f125 100644
--- a/deploy/gitea/public/assets/js/hop-native.js
+++ b/deploy/gitea/public/assets/js/hop-native.js
@@ -284,7 +284,14 @@
return response.json();
}));
return prompts
- .filter((prompt) => prompt.status !== 'active' && prompt.status !== 'running')
+ .filter((prompt) => {
+ const request = String(prompt.prompt || '');
+ const outcome = String(prompt.response_summary || '');
+ return prompt.status !== 'active'
+ && prompt.status !== 'running'
+ && !request.startsWith('Resolve proposal ')
+ && !outcome.startsWith('hop-reconciliation-conflicts:');
+ })
.sort((left, right) => String(right.created_at).localeCompare(String(left.created_at)));
}
return [];
diff --git a/deploy/gitea/templates/custom/footer.tmpl b/deploy/gitea/templates/custom/footer.tmpl
index 610e7b3..da33ae1 100644
--- a/deploy/gitea/templates/custom/footer.tmpl
+++ b/deploy/gitea/templates/custom/footer.tmpl
@@ -1,3 +1,3 @@
-
+