Merge branch 'dev'
CI/CD / deploy (push) Successful in 2m8s Details

This commit is contained in:
Jeff Emmett 2026-04-14 23:23:17 -04:00
commit 89234000a8
2 changed files with 42 additions and 5 deletions

View File

@ -0,0 +1,10 @@
services:
encryptid:
labels:
- "sablier.enable=true"
- "sablier.group=encryptid"
- "traefik.enable=false"
encryptid-db:
labels:
- "sablier.enable=true"
- "sablier.group=encryptid"

View File

@ -1175,6 +1175,36 @@ routes.post("/api/tasks/:id/export-to-backlog", async (c) => {
});
});
routes.get("/canvas", (c) => {
const space = c.req.param("space") || "demo";
return c.html(renderShell({
title: `${space} — Canvas | rTime | rSpace`,
moduleId: "rtime",
spaceSlug: space,
modules: getModuleInfoList(),
theme: "dark",
body: `<folk-timebank-app space="${space}" view="canvas"></folk-timebank-app>`,
scripts: `<script type="module" src="/modules/rtime/folk-timebank-app.js?v=1"></script>`,
styles: `<link rel="stylesheet" href="/modules/rtime/rtime.css">`,
}));
});
routes.get("/collaborate", (c) => {
const space = c.req.param("space") || "demo";
return c.html(renderShell({
title: `${space} — Collaborate | rTime | rSpace`,
moduleId: "rtime",
spaceSlug: space,
modules: getModuleInfoList(),
theme: "dark",
body: `<folk-timebank-app space="${space}" view="collaborate"></folk-timebank-app>`,
scripts: `<script type="module" src="/modules/rtime/folk-timebank-app.js?v=1"></script>`,
styles: `<link rel="stylesheet" href="/modules/rtime/rtime.css">`,
}));
});
routes.get("/dashboard", (c) => {
const space = c.req.param("space") || "demo";
@ -1226,11 +1256,8 @@ export const timeModule: RSpaceModule = {
filterable: true,
},
],
outputPaths: [
{ path: "canvas", name: "Canvas", icon: "🧺", description: "Unified commitment pool & task weaving canvas" },
{ path: "collaborate", name: "Collaborate", icon: "🤝", description: "Intent-routed collaboration matching" },
{ path: "dashboard", name: "Fulfillment", icon: "📊", description: "Personal commitment fulfillment tracking" },
],
// Views (Canvas, Collaborate, Fulfillment) are handled by the component's
// internal tab-bar — no outputPaths needed to avoid duplicate navigation.
onboardingActions: [
{ label: "Pledge Hours", icon: "⏳", description: "Add a commitment to the pool", type: 'create', href: '/rtime' },
],