diff --git a/crates/toolpath-desktop/.taurignore b/crates/toolpath-desktop/.taurignore new file mode 100644 index 0000000..a22982e --- /dev/null +++ b/crates/toolpath-desktop/.taurignore @@ -0,0 +1,5 @@ +# Tauri CLI file-watcher ignore list (gitignore syntax). +# `cargo tauri dev` watches the crate root and restarts the Rust binary on +# any change. Vite already hot-reloads the Svelte frontend, so we don't +# want the frontend tree to trigger a Rust restart. +frontend/ diff --git a/crates/toolpath-desktop/frontend/public/contour-texture.svg b/crates/toolpath-desktop/frontend/public/contour-texture.svg new file mode 100644 index 0000000..de9b29e --- /dev/null +++ b/crates/toolpath-desktop/frontend/public/contour-texture.svg @@ -0,0 +1,16 @@ + + \ No newline at end of file diff --git a/crates/toolpath-desktop/frontend/src/app.svelte b/crates/toolpath-desktop/frontend/src/app.svelte index 8a5461a..aad2bfb 100644 --- a/crates/toolpath-desktop/frontend/src/app.svelte +++ b/crates/toolpath-desktop/frontend/src/app.svelte @@ -1,68 +1,98 @@ -{#if notInTauri} -
-{/if} + + +- {store.m.agents.loading ? "Detecting installed agents… " : "Select an agent to browse its traces."} - {#if store.m.agents.loading}{/if} -
++ {store.m.agents.loading ? "Detecting installed agents…" : "Select an installed agent to browse its sessions."} + {#if store.m.agents.loading}{/if} +
+- {#if projectCount === 0 && claude.loadingProjects} - Scanning ~/.claude/projects/… - {:else} - {projectCount} project{projectCount === 1 ? "" : "s"}{claude.loadingProjects ? " — still scanning… " : " "} - {/if} - {#if claude.loadingProjects}{/if} -
+Point to a repo and pick a branch. History on that branch becomes the trace.
++ Point to a repo and pick a branch. History on that branch becomes the + derived Path document. +
+Paste a PR URL. We fetch commits, reviews, and CI checks, then render the trace.
++ Paste a PR URL. We fetch commits, reviews, and CI checks, then render + the derived trace. +
- {#if projectCount === 0 && pi.loadingProjects} - Scanning ~/.pi/agent/sessions/… - {:else} - {projectCount} project{projectCount === 1 ? "" : "s"}{pi.loadingProjects ? " — still scanning… " : " "} - {/if} - {#if pi.loadingProjects}{/if} -
+- Select where your agent trace is coming from. You'll be able to preview - it before exporting or uploading to Pathbase. -
-+ {s.desc} +
+
+ ⎇ derived via path derive {s.k}
+
Nothing to preview.
++ Pick a repo, pull request, or conversation from the home tab. Toolpath + will derive a Path document, show its provenance graph, and let you + upload it to pathbase.dev. +
+- {steps.length} step{steps.length === 1 ? "" : "s"} · {actorSet.size} actor{actorSet.size === 1 ? "" : "s"} - {#if times.length >= 2} · spans {times[0].slice(0, 10)} → {times[times.length - 1].slice(0, 10)}{/if} -
- + +{ch.raw}{/if}
- {#if ch.structural}{JSON.stringify(ch.structural, null, 2)}{/if}
- {/each}
+ {@const s = preview.selectedStep}
+ {@const actor = s.step.actor}
+ {@const def = preview.selectedActors?.[actor]}
+ {@const displayName = def?.name ?? actor.split(":").slice(1).join(":")}
+ {@const changeKeys = s.change ? Object.keys(s.change) : []}
+ {ch.raw}{/if}
+ {#if ch.structural}{JSON.stringify(ch.structural, null, 2)}{/if}
+ {/each}
+ {/if}
{/if}
- {/if}
+ No result.
-{:else if r.kind === "export"} -Your trace was written to disk.
-{r.path}Derive and upload a Path document to see the outcome here.
+Your trace was written as a .path.json document.
Document validated and sent to pathbase.dev.
+{r.url}