Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
e2b9b37
settings for context and page groups
sid597 Aug 8, 2025
da54c72
node settings
sid597 Aug 9, 2025
f83a007
address review
sid597 Aug 10, 2025
ee58296
fix node creation if it does not exist
sid597 Aug 10, 2025
87f38d3
remove unused, refactor
sid597 Aug 10, 2025
5a6bfdd
address coderabbit review
sid597 Aug 10, 2025
9815656
unify spelling, handle fallback
sid597 Aug 11, 2025
37aa7e0
sync
sid597 Aug 17, 2025
4f2807b
address coderabbit code
sid597 Aug 17, 2025
3e430c9
address lint errors
sid597 Aug 19, 2025
0425eee
use async instead of backend
sid597 Aug 19, 2025
5622c64
address review
sid597 Aug 21, 2025
2a177c5
Merge branch 'main' into eng-733-glue-ui-components-to-data-extractio…
sid597 Aug 21, 2025
5ce74d5
Merge branch 'main' into eng-709-settings-panel-for-suggestive-mode
sid597 Aug 21, 2025
590848c
address review
sid597 Aug 21, 2025
e3f7352
bug fixes
sid597 Aug 22, 2025
0f2938f
bug fixes
sid597 Aug 22, 2025
36fc757
Merge branch 'eng-733-glue-ui-components-to-data-extraction-and-datab…
sid597 Aug 22, 2025
4422b0a
unused import
sid597 Aug 22, 2025
ec8109d
Add an input type for platform accounts
maparent Aug 23, 2025
bdb0180
Add an input type for platform accounts
maparent Aug 23, 2025
474dccc
Merge branch 'main' into eng-733-glue-ui-components-to-data-extractio…
sid597 Aug 23, 2025
aa573c8
Merge branch 'eng-764-bulk-account-uploading' of https://github.com/D…
sid597 Aug 23, 2025
c6a806d
Merge branch 'eng-764-bulk-account-uploading' into eng-733-glue-ui-co…
sid597 Aug 23, 2025
18a0d92
Add an input type for platform accounts
maparent Aug 23, 2025
cba3232
Merge branch 'eng-764-bulk-account-uploading' of https://github.com/D…
sid597 Aug 23, 2025
4b7cf9b
Merge branch 'eng-764-bulk-account-uploading' into eng-733-glue-ui-co…
sid597 Aug 23, 2025
a0ea409
bulk upsert accounts, use database function imports
sid597 Aug 24, 2025
6efd37c
Merge branch 'main' into eng-733-glue-ui-components-to-data-extractio…
sid597 Aug 24, 2025
29e8151
add comment for future
sid597 Aug 24, 2025
a11142a
use better import method
sid597 Aug 24, 2025
814149b
Merge branch 'eng-733-glue-ui-components-to-data-extraction-and-datab…
sid597 Aug 24, 2025
92f28d6
commonjs-to-esm
sid597 Aug 24, 2025
d8837f0
Merge branch 'main' into eng-709-settings-panel-for-suggestive-mode
sid597 Aug 24, 2025
3e0ae6f
fix merge errors, fix tree config setting extraction, test functional…
sid597 Aug 24, 2025
0f56967
add progress toaster, use space existence condition for on load sync
sid597 Aug 24, 2025
99c1ae5
defaultvalue
sid597 Aug 24, 2025
d045b21
address review, leaving out update embeddings from here
sid597 Aug 28, 2025
209da92
Merge branch 'main' into eng-709-settings-panel-for-suggestive-mode
sid597 Aug 28, 2025
6406595
Merge branch 'main' into eng-709-settings-panel-for-suggestive-mode
sid597 Aug 29, 2025
3e142de
update embeddings
sid597 Aug 29, 2025
a0e191a
Merge branch 'main' into eng-709-settings-panel-for-suggestive-mode
sid597 Aug 31, 2025
569df7a
ENG-818: Declare dbDotEnv as mjs explicitly
maparent Sep 1, 2025
d6ff391
Merge branch 'main' into eng-709-settings-panel-for-suggestive-mode
sid597 Sep 1, 2025
f65a5c1
Merge branch 'eng-818-make-dbdotenv-explicitly-a-module' into eng-709…
sid597 Sep 1, 2025
58d119b
Merge branch 'main' into eng-709-settings-panel-for-suggestive-mode
sid597 Sep 8, 2025
b91efed
reverting create a new pr for update embeddings
sid597 Sep 8, 2025
09b6629
Merge branch 'main' into eng-709-settings-panel-for-suggestive-mode
sid597 Sep 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
bug fixes
  • Loading branch information
sid597 committed Aug 22, 2025
commit 0f2938f48a88ae4daf2ede8743bb742678b2420d
4 changes: 4 additions & 0 deletions apps/roam/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import {
installDiscourseFloatingMenu,
removeDiscourseFloatingMenu,
} from "./components/DiscourseFloatingMenu";
import { createOrUpdateDiscourseEmbedding } from "./utils/syncDgNodesToSupabase";

const initPostHog = () => {
posthog.init("phc_SNMmBqwNfcEpNduQ41dBUjtGNEUEKAy6jTn63Fzsrax", {
Expand Down Expand Up @@ -134,6 +135,9 @@ export default runExtension(async (onloadArgs) => {
getDiscourseNodes: getDiscourseNodes,
};

// TODO: REMOVE AFTER TESTING
await createOrUpdateDiscourseEmbedding(onloadArgs.extensionAPI);

installDiscourseFloatingMenu(onloadArgs.extensionAPI);

return {
Expand Down
7 changes: 3 additions & 4 deletions apps/roam/src/utils/supabaseContext.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,10 @@ export type SupabaseContext = {

let _contextCache: SupabaseContext | null = null;

const settingsConfigPageUid = getPageUidByPageTitle(
DISCOURSE_CONFIG_PAGE_TITLE,
);

const getOrCreateSpacePassword = () => {
const settingsConfigPageUid = getPageUidByPageTitle(
DISCOURSE_CONFIG_PAGE_TITLE,
);
const props = getBlockProps(settingsConfigPageUid);
const existing: string | unknown = props["space-user-password"];
if (existing && typeof existing === "string") return existing;
Expand Down
37 changes: 3 additions & 34 deletions apps/roam/src/utils/syncDgNodesToSupabase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,12 @@ import {
} from "./supabaseContext";
import { LocalContentDataInput } from "@repo/database/inputTypes";
import { RoamDiscourseNodeData } from "./getAllDiscourseNodesSince";
import getDiscourseRelations from "./getDiscourseRelations";
import getDiscourseNodes, { DiscourseNode } from "./getDiscourseNodes";
import {
discourseNodeBlockToLocalConcept,
discourseNodeSchemaToLocalConcept,
orderConceptsByDependency,
discourseRelationSchemaToLocalConcept,
discourseRelationDataToLocalConcept,
} from "./conceptConversion";
import getDiscourseRelationTriples from "./getDiscourseRelationTriples";
import { OnloadArgs } from "roamjs-components/types";
import { DGSupabaseClient } from "@repo/ui/lib/supabase/client";
import { fetchEmbeddingsForNodes } from "./upsertNodesAsContentWithEmbeddings";
Expand Down Expand Up @@ -208,16 +204,6 @@ export const convertDgToSupabaseConcepts = async ({
return discourseNodeSchemaToLocalConcept(context, node);
});

const relationSchemas = getDiscourseRelations();

const relationsToEmbed = relationSchemas.map((relation) => {
const localConcept = discourseRelationSchemaToLocalConcept(
context,
relation,
);
return localConcept;
});

const nodeBlockToLocalConcepts = nodesSince.map((node) => {
const localConcept = discourseNodeBlockToLocalConcept(context, {
nodeUid: node.source_local_id,
Expand All @@ -227,28 +213,9 @@ export const convertDgToSupabaseConcepts = async ({
return localConcept;
});

const relationTriples = getDiscourseRelationTriples();
const relationLabelToId = Object.fromEntries(
relationSchemas.map((r) => [r.label, r.id]),
);
const relationBlockToLocalConcepts = relationTriples
.map(({ relation, source, target }) => {
const relationSchemaUid = relationLabelToId[relation];
if (!relationSchemaUid) {
return null;
}
return discourseRelationDataToLocalConcept(context, relationSchemaUid, {
source,
target,
});
})
.filter((x): x is NonNullable<typeof x> => x !== null);

const conceptsToUpsert = [
...nodesTypesToLocalConcepts,
...relationsToEmbed,
...nodeBlockToLocalConcepts,
...relationBlockToLocalConcepts,
];
const { ordered } = orderConceptsByDependency(conceptsToUpsert);
const { error } = await supabaseClient.rpc("upsert_concepts", {
Expand Down Expand Up @@ -279,7 +246,9 @@ export const upsertNodesToSupabaseAsContentWithEmbeddings = async (

let nodesWithEmbeddings: LocalContentDataInput[];
try {
nodesWithEmbeddings = await fetchEmbeddingsForNodes(allNodeInstancesAsLocalContent);
nodesWithEmbeddings = await fetchEmbeddingsForNodes(
allNodeInstancesAsLocalContent,
);
} catch (error) {
const message = error instanceof Error ? error.message : String(error);
console.error(
Expand Down
6 changes: 6 additions & 0 deletions apps/roam/src/utils/upsertNodesAsContentWithEmbeddings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ export const convertRoamNodeToLocalContent = ({
text: text,
variant: variant,
scale: "document",
document_inline: {
source_local_id: node.source_local_id,
created: new Date(node.created || Date.now()).toISOString(),
last_modified: new Date(node.last_modified || Date.now()).toISOString(),
author_local_id: node.author_local_id,
},
};
});
};
Expand Down
17 changes: 14 additions & 3 deletions packages/database/supabase/functions/create-space/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,19 @@ const processAndGetOrCreateSpace = async (
return result;
};

const corsHeaders = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers":
"authorization,x-client-info,apikey,content-type",
};

// @ts-ignore Deno is not visible to the IDE
Deno.serve(async (req) => {
// Handle pre-flight requests
if (req.method === "OPTIONS") {
return new Response("ok", { headers: corsHeaders });
}

const input = await req.json();
// TODO: We should check whether the request comes from a vetted source, like
// the roam or obsidian plugin. A combination of CSRF, headers, etc.
Expand All @@ -193,7 +204,7 @@ Deno.serve(async (req) => {
if (!url || !key) {
return new Response("Missing SUPABASE_URL or SUPABASE_SERVICE_ROLE_KEY", {
status: 500,
headers: { "Content-Type": "application/json" },
headers: { "Content-Type": "application/json", ...corsHeaders },
});
}
const supabase: DGSupabaseClient = createClient(url, key);
Expand All @@ -203,12 +214,12 @@ Deno.serve(async (req) => {
const status = error.code === "invalid space" ? 400 : 500;
return new Response(JSON.stringify(error), {
status,
headers: { "Content-Type": "application/json" },
headers: { "Content-Type": "application/json", ...corsHeaders },
});
}

return new Response(JSON.stringify(data), {
headers: { "Content-Type": "application/json" },
headers: { "Content-Type": "application/json", ...corsHeaders },
});
});

Expand Down