| undefine
},
openai_compatible: mergeApiKeyProvider(defaults.openai_compatible, settings?.openai_compatible),
deepseek: mergeApiKeyProvider(defaults.deepseek, settings?.deepseek),
+ cheaperinference: mergeApiKeyProvider(defaults.cheaperinference, settings?.cheaperinference),
};
}
@@ -726,6 +738,7 @@ const LocalSettings = () => {
openrouter: secretProviderPatch(ai.openrouter),
openai_compatible: secretProviderPatch(ai.openai_compatible),
deepseek: secretProviderPatch(ai.deepseek),
+ cheaperinference: secretProviderPatch(ai.cheaperinference),
embeddings: {
provider: embeddings.provider,
model: embeddings.model,
@@ -1049,6 +1062,7 @@ const LocalSettings = () => {
OpenRouter
OpenAI compatible
DeepSeek
+ Cheaper Inference
None
@@ -1146,6 +1160,7 @@ const LocalSettings = () => {
)}
{ai.provider === "openai_compatible" && renderApiKeyProviderFields("openai_compatible")}
{ai.provider === "deepseek" && renderApiKeyProviderFields("deepseek")}
+ {ai.provider === "cheaperinference" && renderApiKeyProviderFields("cheaperinference")}
{ai.provider !== "none" && (
diff --git a/src/pages/TagDetail.test.tsx b/src/pages/TagDetail.test.tsx
index 0c0f6f9f..bed80bc1 100644
--- a/src/pages/TagDetail.test.tsx
+++ b/src/pages/TagDetail.test.tsx
@@ -153,7 +153,7 @@ describe("TagDetail", () => {
);
expect(screen.getByRole("link", { name: "Manage tags" })).toHaveAttribute("href", "/tags");
expect(screen.getByRole("button", { name: "Rename #typescript tag" })).toBeInTheDocument();
- expect(screen.getByText("Example bookmark")).toBeInTheDocument();
+ expect(await screen.findByText("Example bookmark")).toBeInTheDocument();
expect(screen.getByText("1-20 of 22")).toBeInTheDocument();
expect(mockedListBookmarks).toHaveBeenCalledWith({
tag: "typescript",
@@ -248,7 +248,7 @@ describe("TagDetail", () => {
renderTagDetail();
expect(await screen.findByRole("heading", { name: "#typescript" })).toBeInTheDocument();
- expect(screen.getByText("No bookmarks with this tag yet")).toBeInTheDocument();
+ expect(await screen.findByText("No bookmarks with this tag yet")).toBeInTheDocument();
});
it("does not request scoped bookmarks for an unknown tag", async () => {
diff --git a/src/pages/Tags.tsx b/src/pages/Tags.tsx
index a1768a35..50a2eb31 100644
--- a/src/pages/Tags.tsx
+++ b/src/pages/Tags.tsx
@@ -77,7 +77,7 @@ const Tags = () => {
});
const deleteMutation = useMutation({
- mutationFn: deleteTag,
+ mutationFn: (id: string) => deleteTag(id),
onSuccess: () => {
const deletedName = deleteTarget?.name;
invalidateTagAffectedQueries();