From b4ac638a6df5d02a46fff1c643ee333c75b28ef6 Mon Sep 17 00:00:00 2001 From: Pratyush Sharma <56130065+pratyush618@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:41:42 +0530 Subject: [PATCH 1/2] fix(docs): carry deploy base path in redirect meta-refresh The redirect stub's meta-refresh URL is resolved against the origin, not the router, so under the /taskito deploy base it dropped the prefix and 404'd (e.g. section-landing and old-URL redirects). Prefix import.meta.env.BASE_URL; the SPA navigate() path was already basename-aware. --- docs/app/routes/docs.$.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/app/routes/docs.$.tsx b/docs/app/routes/docs.$.tsx index 3c871edf..e3014311 100644 --- a/docs/app/routes/docs.$.tsx +++ b/docs/app/routes/docs.$.tsx @@ -41,12 +41,14 @@ export function meta({ params }: Route.MetaArgs) { const path = pathOf(params); const dest = redirectFor(path); if (dest) { - // Prerendered into the old URL's static HTML so a direct hit refreshes to - // the new home; canonical points search engines at the destination. + // Static redirect stub for a moved URL. The meta-refresh resolves against + // the origin, so it needs the deploy base path; SPA navigate() adds it. + const base = import.meta.env.BASE_URL.replace(/\/$/, ""); + const target = `${base}${dest}`; return [ { title: "Redirecting… | Taskito" }, - { httpEquiv: "refresh", content: `0; url=${dest}` }, - { tagName: "link", rel: "canonical", href: dest }, + { httpEquiv: "refresh", content: `0; url=${target}` }, + { tagName: "link", rel: "canonical", href: target }, ]; } const meta = docMeta(path); From fcab92e592433d25ea47c8eed5e18c13b4f36669 Mon Sep 17 00:00:00 2001 From: Pratyush Sharma <56130065+pratyush618@users.noreply.github.com> Date: Wed, 8 Jul 2026 09:43:39 +0530 Subject: [PATCH 2/2] docs: add Java SDK to README Java is published to Maven Central (org.byteveda:taskito); list it in the SDK table, comparison, and badges alongside Python and Node. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ce6fac17..8a73b785 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ A Rust-powered task queue with native SDKs. One engine — no broker required, j [![PyPI version](https://img.shields.io/pypi/v/taskito.svg)](https://pypi.org/project/taskito/) [![npm version](https://img.shields.io/npm/v/@byteveda/taskito.svg)](https://www.npmjs.com/package/@byteveda/taskito) +[![Maven Central](https://img.shields.io/maven-central/v/org.byteveda/taskito.svg)](https://central.sonatype.com/artifact/org.byteveda/taskito) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/ByteVeda/taskito/blob/master/LICENSE) @@ -21,6 +22,7 @@ and Diesel over SQLite in WAL mode — exposed to each language through a thin n |----------|---------|---------|------| | **Python** | `pip install taskito` | [PyPI](https://pypi.org/project/taskito/) · [`sdks/python`](sdks/python) | [Python docs](https://docs.byteveda.org/taskito) | | **Node.js** | `npm install @byteveda/taskito` | [npm](https://www.npmjs.com/package/@byteveda/taskito) · [`sdks/node`](sdks/node) | [Node docs](https://docs.byteveda.org/taskito/node) | +| **Java** | `org.byteveda:taskito` | [Maven Central](https://central.sonatype.com/artifact/org.byteveda/taskito) · [`sdks/java`](sdks/java) | [Java docs](https://docs.byteveda.org/taskito/java) | Each SDK is self-contained — see its README for install, quickstart, and the full API. @@ -46,7 +48,7 @@ truth; the GIL/event loop is held only during task execution. `WorkerDispatcher` |---|---|---|---|---|---| | Broker required | **No** | Yes | Yes | Yes | Yes | | Core language | **Rust** | Python | Python | Python | Python | -| Language SDKs | **Python, Node** | Python | Python | Python | Python | +| Language SDKs | **Python, Node, Java** | Python | Python | Python | Python | | Priority queues | **Yes** | Yes | No | No | Yes | | Rate limiting | **Yes** | Yes | No | Yes | No | | Dead letter queue | **Yes** | No | Yes | No | No |