diff --git a/apps/mobile/src/components/ProjectKnowledgeEntry.test.tsx b/apps/mobile/src/components/ProjectKnowledgeEntry.test.tsx index dc628aa11f445..fea867f7cd530 100644 --- a/apps/mobile/src/components/ProjectKnowledgeEntry.test.tsx +++ b/apps/mobile/src/components/ProjectKnowledgeEntry.test.tsx @@ -245,7 +245,7 @@ const fact: ProjectFact = { tags: [], kind: "note", sources: [], - status: "proposed", + status: "saved", revision: 1, trust: 0.5, retrievalCount: 0, @@ -486,7 +486,6 @@ it("shows user origin once without treating the assertion as a citation", async const asserted: ProjectFact = { ...fact, origin: { kind: "user" }, - status: "confirmed", sources: [{ kind: "user" }], }; state.list = { facts: [asserted], nextCursor: null }; @@ -681,7 +680,6 @@ it("marks a superseded fact read-only and lists superseded facts on request", as await screen.click(`Inspect fact: ${fact.content}`); const labels = [...screen.container.querySelectorAll("button")].map((item) => item.textContent); expect(labels).not.toContain("Edit"); - expect(labels).not.toContain("Confirm"); expect(labels).not.toContain("Supersede"); await screen.click("Back"); expect(state.listInputs.at(-1)).not.toHaveProperty("includeSuperseded"); @@ -841,7 +839,7 @@ it("drops a revised fact from the selection and the draft after saving", async ( }); screen.openMemory(); await screen.click(`Inspect fact: ${fact.content}`); - await screen.click("Confirm"); + await screen.click("Helpful"); expect(state.setText).toHaveBeenCalledWith(scope.draftKey, ""); expect(screen.container.textContent).toContain("0 selected"); expect(screen.container.textContent).toContain("removed from the draft"); diff --git a/apps/mobile/src/components/ProjectKnowledgeEntry.tsx b/apps/mobile/src/components/ProjectKnowledgeEntry.tsx index a664c574a46a3..4a0142b201da6 100644 --- a/apps/mobile/src/components/ProjectKnowledgeEntry.tsx +++ b/apps/mobile/src/components/ProjectKnowledgeEntry.tsx @@ -440,6 +440,8 @@ function ProjectKnowledgeSheet( @@ -502,18 +504,17 @@ function ProjectKnowledgeSheet( if (inspectedFact.status !== "forgotten") push({ kind: "editor", mode: { kind, fact: inspectedFact } }); }} - onRevise={(action) => { - const revise = () => void apply({ action, ...factMutation(inspectedFact) }); - if (action !== "forget") return revise(); + onForget={() => Dialog.confirm({ title: "Forget this fact permanently?", message: "Its content, history and every copy sent to agents are removed and cannot be restored. If the fact changed rather than became wrong, supersede it instead.", confirmText: "Forget", destructive: true, - onConfirm: revise, - }); - }} + onConfirm: () => + void apply({ action: "forget", ...factMutation(inspectedFact) }), + }) + } onFeedback={(helpful) => void apply({ action: "feedback", helpful, ...factMutation(inspectedFact) }) } diff --git a/apps/mobile/src/components/ProjectKnowledgeFactDetail.tsx b/apps/mobile/src/components/ProjectKnowledgeFactDetail.tsx index eb20cb7fd4448..76fb48a56374e 100644 --- a/apps/mobile/src/components/ProjectKnowledgeFactDetail.tsx +++ b/apps/mobile/src/components/ProjectKnowledgeFactDetail.tsx @@ -126,7 +126,7 @@ export function ProjectFactInspector(props: { readonly onReadSource: (ref: KnowledgeMessageRef) => void; readonly onOpenFact: OpenFact; readonly onEdit: (mode: "edit" | "supersede") => void; - readonly onRevise: (action: "confirm" | "forget") => void; + readonly onForget: () => void; readonly onFeedback: (helpful: boolean) => void; readonly onDismissHints: () => void; }) { @@ -162,13 +162,6 @@ export function ProjectFactInspector(props: { Trust signal {fact.trust.toFixed(2)} · revision {fact.revision} - {fact.status === "proposed" && - fact.origin.kind === "assisted" && - fact.supersedes != null ? ( - - Confirming replaces fact {fact.supersedes.slice(0, 8)}; forgetting leaves it as it is. - - ) : null} @@ -202,14 +195,6 @@ export function ProjectFactInspector(props: { {active ? ( - {fact.status === "proposed" && !superseded ? ( - - ) : null} {/* The server rejects revisions of a superseded fact; its replacement is the one to change. */} {!superseded ? (