feat(cli): claudemesh skill prints bundled SKILL.md (v1.18.0)
Zero-install access to the protocol reference: a fresh `npm i -g claudemesh-cli` user (or someone running the prebuilt binary) can now `claudemesh skill | claude --skill-add -` without copying any files into ~/.claude/skills. The skill markdown is embedded into the CLI bundle at build time via Bun's text-import attribute. Also replaces two `<> ALL(...)` raw SQL fragments in the dashboard unread-count queries with drizzle's notInArray() helper — matches the same fix already applied to /v1/me/topics in the API package. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@ import {
|
||||
meshTopicMember,
|
||||
meshTopicMessage,
|
||||
} from "@turbostarter/db/schema/mesh";
|
||||
import { aliasedTable, and, count, desc, eq, gt, inArray, isNull, or, sql } from "drizzle-orm";
|
||||
import { aliasedTable, and, count, desc, eq, gt, inArray, isNull, notInArray, or, sql } from "drizzle-orm";
|
||||
|
||||
import { appConfig } from "~/config/app";
|
||||
import { pathsConfig } from "~/config/paths";
|
||||
@@ -110,7 +110,7 @@ export default async function UniversePage() {
|
||||
and(
|
||||
inArray(meshTopic.meshId, meshIds),
|
||||
isNull(meshTopic.archivedAt),
|
||||
sql`${meshTopicMessage.senderMemberId} <> ALL(${myMemberIds})`,
|
||||
notInArray(meshTopicMessage.senderMemberId, myMemberIds),
|
||||
or(
|
||||
isNull(meshTopicMember.lastReadAt),
|
||||
sql`${meshTopicMessage.createdAt} > ${meshTopicMember.lastReadAt}`,
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
meshTopicMember,
|
||||
meshTopicMessage,
|
||||
} from "@turbostarter/db/schema/mesh";
|
||||
import { and, asc, count, eq, inArray, isNull, or, sql } from "drizzle-orm";
|
||||
import { and, asc, count, eq, inArray, isNull, notInArray, or, sql } from "drizzle-orm";
|
||||
|
||||
import { pathsConfig } from "~/config/paths";
|
||||
import { getSession } from "~/lib/auth/server";
|
||||
@@ -107,7 +107,7 @@ export default async function WorkspaceTopicsPage() {
|
||||
.where(
|
||||
and(
|
||||
inArray(meshTopicMessage.topicId, topicIds),
|
||||
sql`${meshTopicMessage.senderMemberId} <> ALL(${myMemberIds})`,
|
||||
notInArray(meshTopicMessage.senderMemberId, myMemberIds),
|
||||
or(
|
||||
isNull(meshTopicMember.lastReadAt),
|
||||
sql`${meshTopicMessage.createdAt} > ${meshTopicMember.lastReadAt}`,
|
||||
|
||||
Reference in New Issue
Block a user