Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
609859b
[ENG-495] Tldraw obsidian setup (#285)
trangdoan982 Jul 22, 2025
acdca79
[ENG-598] Data persistence for tldraw (#303)
trangdoan982 Aug 4, 2025
5b5872b
[ENG-624] TLDraw Obsidian asset store (#326)
trangdoan982 Aug 15, 2025
57932fd
correct styles
trangdoan982 Aug 20, 2025
9b814a4
[ENG-599] Discourse node shape (#341)
trangdoan982 Aug 27, 2025
7cd9747
[ENG-604] Create node flow (#387)
trangdoan982 Sep 1, 2025
854aed3
[ENG-658] Add existing node flow (#389)
trangdoan982 Sep 1, 2025
e587380
[ENG-601] Create settings for canvas and attachment default folder (#…
trangdoan982 Sep 1, 2025
ab34054
update package-lock
trangdoan982 Sep 5, 2025
a7eba8e
ENG-600: Discourse Relation shape definition (#408)
trangdoan982 Sep 17, 2025
2fdd042
ENG-605: Add new relation flow (#411)
trangdoan982 Sep 25, 2025
d1e2f6c
[ENG-603] Add existing relations (#412)
trangdoan982 Sep 25, 2025
94dc905
[ENG-844] Add color setting for relation types (#429)
trangdoan982 Sep 25, 2025
011ed76
Add documentation for tldraw Canvas feature (#451)
trangdoan982 Sep 25, 2025
86fa12e
fix icons
trangdoan982 Sep 29, 2025
2c5d583
Remove Discourse Graph Template link from homepage (#404) (#409)
mdroidian Sep 2, 2025
81608fc
ENG-812 Update of database cli tools (#401)
maparent Sep 6, 2025
373d301
make tabs vertical, use a new textarea component to make it resizable…
sid597 Sep 6, 2025
e2bc159
Update README.md (#396)
jsmorabito Sep 7, 2025
8df3ab9
ENG-831 - Refactor tldraw maximize to stop canvas jumping around (#423)
mdroidian Sep 7, 2025
0ca1f26
Roam: ENG-798 Node Tags breaks Color Highlighter (#402)
sid597 Sep 8, 2025
165ebe6
Roam: ENG-709: Settings panel for suggestive mode (#327)
sid597 Sep 8, 2025
3855013
ENG-805 - Set default font to sans for Discourse Nodes on Canvas (#432)
mdroidian Sep 11, 2025
0dc4109
eng-848 Let the workflow know about new package dependencies and vari…
maparent Sep 11, 2025
bbe26ad
ENG-847 include, do not build dependencies. (#431)
maparent Sep 11, 2025
4074c10
ENG-821 Fail gracefully when no database is available. Also better ha…
maparent Sep 12, 2025
82a94a3
ENG-771 Handle empty account name (#364)
maparent Sep 12, 2025
8aabf1a
ENG-833 Isolate node query functions. (#427)
maparent Sep 13, 2025
11cccb5
ENG-842 change node creation behaviour from node tags (#442)
sid597 Sep 15, 2025
134d288
ENG-856 - enforce type over interface (#444)
mdroidian Sep 15, 2025
0920d9d
reduce last actions to 5, re-add user name to error email (#447)
mdroidian Sep 16, 2025
8151fd6
[ENG-404] Fix multiple things about node search menu (#347)
trangdoan982 Sep 16, 2025
4b24510
Remove Cybrarian page and job openings banner from layout. (#448)
mdroidian Sep 18, 2025
01b57ef
Refactor conditionToDatalog to filter out empty branches and return e…
mdroidian Sep 18, 2025
d213280
Set node summoning menu default trigger to @ (#446)
mdroidian Sep 18, 2025
c7c7f2e
Nodetag documentation (#433)
mattakamatsu Sep 19, 2025
affb414
ENG-851 Get left sidebar sections and settings from config page (#439)
sid597 Sep 20, 2025
2cc3c4c
ENG-593 Change from Dev to Admin Panel (#415)
maparent Sep 23, 2025
012c291
ENG-861 - Update canvas node click behavior (#449)
mdroidian Sep 23, 2025
2efc27c
ENG-474 - Update contributors file with documentation instructions (#…
mdroidian Sep 25, 2025
d86c809
Add default Supports and Opposes relations (#454)
mdroidian Sep 25, 2025
4af857c
explain how and where to set SUPABASE_USE_DB (#452)
maparent Sep 25, 2025
2f9323f
ENG-852 Render left sidebar based on fetched sections and settings (#…
sid597 Sep 26, 2025
78c3fa5
ENG-822 Reactivate automated generation of dbTypes (#453)
maparent Sep 26, 2025
ad855a5
small fix on packages/README.md (#457)
mdroidian Sep 26, 2025
b6371ed
ENG-490 - removing duplicates from expected inputs in Inputs.tsx and …
mdroidian Sep 27, 2025
60df342
ENG-904 - Added isACandidateCallback to registerDiscourseDatalogTrans…
mdroidian Sep 27, 2025
d21ebe0
use .env if SUPABASE_USE_DB not in environment variables (#463)
maparent Sep 27, 2025
68a3598
eng-903 do not allow turbo to cache .env (#462)
maparent Sep 27, 2025
c70c70c
ENG-907 Update to supabase client library (#461)
maparent Sep 28, 2025
b27e79e
ENG-908 Make lint not fail on database, utils (#464)
maparent Sep 28, 2025
5311d7c
Render suggestive mode overlay button (#465)
sid597 Sep 29, 2025
0b41a4c
ENG-913 - Canvas css issue in main window (#467)
mdroidian Sep 29, 2025
9ab8f46
ENG-890 | ENG-891 - Ship pre populated tags and adjust tag placeholde…
mdroidian Sep 29, 2025
7423b97
ENG-757 experiment with pnpm (#352)
maparent Sep 30, 2025
207ca9e
ENG-920: Update supabase (and vercel) CLI. (#469)
maparent Oct 1, 2025
7ecd927
eng-923-merge-error-use-pnpm-in-tasks (#471)
maparent Oct 1, 2025
a5660a4
ENG-921 - normalize tag comparison in observer (#470)
mdroidian Oct 1, 2025
c12b4f9
eng-924 Start supabase before creating local env (#472)
maparent Oct 1, 2025
ed30e84
add {current user} to "with text" condition (#476)
mdroidian Oct 3, 2025
e2c3e8b
[ENG-495] Tldraw obsidian setup (#285)
trangdoan982 Jul 22, 2025
4f94eee
[ENG-598] Data persistence for tldraw (#303)
trangdoan982 Aug 4, 2025
47fd2e4
switch to pnpm
trangdoan982 Oct 3, 2025
cda1da2
add Shift click ability
trangdoan982 Oct 3, 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
12 changes: 9 additions & 3 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,24 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 10.15.1
run_install: false

- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
cache: "pnpm"

- name: Install Dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Check TypeScript Types
run: npx turbo check-types

# TODO: Add future linting, testing, style checks, etc.
# name: Lint
# run: npm run lint
# run: pnpm run lint
19 changes: 16 additions & 3 deletions .github/workflows/database-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,25 @@ jobs:
SUPABASE_PROJECT_ID: ${{ secrets.SUPABASE_PROJECT_ID_PROD }}
SUPABASE_DB_PASSWORD: ${{ secrets.SUPABASE_DB_PASSWORD_PROD }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- name: Checkout Code
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.15.1
run_install: false

- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm ci
cache: "pnpm"

- name: Install Dependencies
run: pnpm install --frozen-lockfile

- uses: supabase/setup-cli@v1
with:
version: latest

- run: npx turbo deploy -F @repo/database
17 changes: 14 additions & 3 deletions .github/workflows/roam-main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,19 @@ name: Main - Roam To Blob Storage
on:
workflow_dispatch:
push:
branches: main
branches:
- main
paths:
- "apps/roam/**"
- "packages/tailwind-config/**"
- "packages/utils/**"
- "packages/database/**"
- "packages/ui/**"

env:
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
SUPABASE_ANON_KEY: ${{ secrets.SUPABASE_ANON_KEY }}
SUPABASE_URL: ${{ secrets.SUPABASE_URL }}

jobs:
deploy:
Expand All @@ -18,14 +23,20 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.15.1
run_install: false

- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
cache: "pnpm"

- name: Install Dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Deploy
run: npx turbo run deploy --filter=roam
12 changes: 10 additions & 2 deletions .github/workflows/roam-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
paths:
- "apps/roam/**"
- "packages/tailwind-config/**"
- "packages/utils/**"
- "packages/database/**"
- "packages/ui/**"
env:
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
Expand All @@ -22,14 +24,20 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.15.1
run_install: false

- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
cache: "pnpm"

- name: Install Dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Deploy
run: npx turbo run deploy --filter=roam
10 changes: 8 additions & 2 deletions .github/workflows/roam-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,20 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.15.1
run_install: false

- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
cache: "pnpm"

- name: Install Dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Update Roam Depot Extension
run: npx turbo run publish --filter=roam
11 changes: 11 additions & 0 deletions .zed/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"lsp": {
"eslint": {
"settings": {
"experimental": {
"useFlatConfig": true
}
}
}
}
}
59 changes: 59 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,62 @@ Here’s how to contribute:
4. Write tests that validate your change and/or fix.
<!-- 5. Run `turbo build` followed by `turbo test` to confirm everything works. -->
5. Push your branch and open a pull request. 🚀

## Adding Documentation to the Website

The Discourse Graphs website hosts documentation for plugins and general information. Here's how to add or edit documentation:

### Blog Posts

Blog posts are located in `/apps/website/app/(home)/blog/posts/`

1. **Create your post file**: Copy `EXAMPLE.md` as a starting template and rename it to your desired URL slug (e.g., `my-new-post.md`)

2. **Required metadata**: Every blog post must start with YAML frontmatter (reference `EXAMPLE.md` for the exact format):

```yaml
---
title: "Your Post Title"
date: "YYYY-MM-DD"
author: "Author's name"
published: true # Set to true to make the post visible
---
```

3. **Content**: Write your content below the frontmatter using standard Markdown

### Plugin Documentation

Plugin documentation is organized in `/apps/website/app/(docs)/docs/` with separate folders:

- `/obsidian/pages/` - Obsidian plugin documentation
- `/roam/pages/` - Roam Research extension documentation
- `/sharedPages/` - Documentation shared between platforms

1. **Create your documentation file**: Add a new `.md` file in the appropriate platform's `pages/` folder
2. **Use standard Markdown**: No special frontmatter is required for documentation files
3. **Update navigation**: You may need to update the corresponding `navigation.ts` file to include your new page in the sidebar

### Documentation Images

All documentation images should be placed in `/apps/website/public/docs/[platform]/` following this structure:

- **Platform-specific images**: `/public/docs/[platform]/` (e.g., `/public/docs/roam/`, `/public/docs/obsidian/`)
- **General documentation images**: `/public/docs/`

When referencing images in your documentation, use relative paths from the public folder:

```markdown
![Alt text](/docs/roam/my-image.png)
```

### Running the Website Locally

To preview your changes locally:

1. **Environment setup**: Copy `/apps/website/.env.example` to `/apps/website/.env` and configure any necessary environment variables
2. **Install dependencies**: Run `npm install` from the project root
3. **Start development server**: Run `npm run dev` or `npx turbo dev` to start the website locally
4. **View your changes**: Navigate to `http://localhost:3000` to see your documentation

The website uses Next.js with the App Router, so changes to Markdown files should be reflected automatically during development.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ git clone https://github.com/DiscourseGraphs/discourse-graph.git

```bash
cd discourse-graph
npm install
npm install -g pnpm@10
pnpm install
```

3. Run all applications in development mode:
Expand Down
21 changes: 16 additions & 5 deletions apps/obsidian/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,40 @@
"build": "tsx scripts/build.ts",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"publish": "tsx scripts/publish-obsidian.ts",
"publish": "tsx scripts/publish.ts --version 0.1.0",
"check-types": "tsc --noEmit --skipLibCheck"
},
"keywords": [],
"author": "",
"license": "Apache-2.0",
"devDependencies": {
"@octokit/core": "^6.1.2",
"@repo/eslint-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
"@types/node": "^20",
"@types/react": "catalog:obsidian",
"@types/react-dom": "catalog:obsidian",
"autoprefixer": "^10.4.21",
"builtin-modules": "3.3.0",
"dotenv": "^16.4.5",
"esbuild": "0.17.3",
"eslint": "catalog:",
"obsidian": "^1.7.2",
"postcss": "^8.5.3",
"tailwindcss": "^3.4.17",
"tslib": "2.5.1",
"tsx": "^4.19.2",
"typescript": "5.5.4"
"typescript": "5.5.4",
"zod": "^3.24.1"
},
"dependencies": {
"react": "^19.0.0",
"react-dom": "^19.0.0",
"tailwindcss-animate": "^1.0.7"
"date-fns": "^4.1.0",
"tldraw": "^3.14.2",
"nanoid": "^4.0.2",
"react": "catalog:obsidian",
"react-dom": "catalog:obsidian",
"date-fns": "^4.1.0",
"tailwindcss-animate": "^1.0.7",
"tldraw": "3.14.2"
}
}
28 changes: 14 additions & 14 deletions apps/obsidian/scripts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This directory contains a script for publishing the Discourse Graph Obsidian plu

## Prerequisites

1. **Node.js and npm** - Ensure you have Node.js 18+ installed
1. **Node.js and pnpm** - Ensure you have Node.js 20+ installed, with pnpm@10 installed globally (`npm install -g pnpm`)
2. **Git** - For repository operations
3. **GitHub Token** - For authentication (see Authentication section)

Expand Down Expand Up @@ -42,7 +42,7 @@ The script automatically determines release type based on version format and alw
### BRAT Version Priority

BRAT uses alphabetical ordering for pre-release identifiers. This is why we enforce:
- **Internal**: `alpha-*` (comes first alphabetically)
- **Internal**: `alpha-*` (comes first alphabetically)
- **External**: `beta-*` (comes after alpha, gets higher priority)

This ensures that external beta releases always take precedence over internal alpha releases for BRAT auto-updates.
Expand All @@ -53,7 +53,7 @@ The script automatically determines the release type based on version format:

**🧪 Pre-release** (automatic detection)
- **Triggers**: Any version with `alpha` or `beta` suffixes
- **GitHub**: Marked as "Pre-release"
- **GitHub**: Marked as "Pre-release"
- **Main Branch**: Not updated (keeps stable code in main)
- **Use Case**: Testing, beta versions, internal releases

Expand Down Expand Up @@ -122,7 +122,7 @@ tsx scripts/publish.ts --version 0.1.0-alpha-canvas-feature --release-name "Canv
tsx scripts/publish.ts --version 0.1.0-canvas-feature
```

### Beta Release for Public Testing
### Beta Release for Public Testing
```bash
# ✅ Correct format with beta prefix - creates pre-release automatically
tsx scripts/publish.ts --version 1.0.0-beta.1 --release-name "Beta: New Graph View"
Expand All @@ -137,18 +137,18 @@ tsx scripts/publish.ts --version 1.0.0-test.1
tsx scripts/publish.ts --version 1.0.0
```

### Using npm script from obsidian directory
### Using pnpm script from obsidian directory
```bash
cd apps/obsidian
npm run publish -- --version 1.0.0-beta.1
pnpm run publish -- --version 1.0.0-beta.1
```

## What the Script Does

### For All Releases:
1. **Validates input** - Checks version format and arguments
2. **Detects release type** - Internal vs External based on version format
3. **Builds the plugin** - Runs `npm run build` to create distribution files
3. **Builds the plugin** - Runs `pnpm run build` to create distribution files
4. **Copies source files** - Copies plugin source (excluding build artifacts)
5. **Creates GitHub release** - Always creates a release with:
- Custom or default release name
Expand Down Expand Up @@ -184,7 +184,7 @@ Publishes to: `DiscourseGraphs/discourse-graph-obsidian`
### Repository State by Release Type:

**Internal Release**: Repository unchanged, GitHub pre-release created
**External Pre-release**: Repository unchanged, GitHub pre-release created
**External Pre-release**: Repository unchanged, GitHub pre-release created
**External Stable**: Repository main branch updated + GitHub stable release created

## Troubleshooting
Expand All @@ -195,16 +195,16 @@ Publishes to: `DiscourseGraphs/discourse-graph-obsidian`
```bash
# ❌ Wrong
tsx scripts/publish.ts
# ✅ Correct

# ✅ Correct
tsx scripts/publish.ts --version 1.0.0
```

2. **"Invalid version format"**
```bash
# ❌ Wrong
tsx scripts/publish.ts --version "beta-1"

# ✅ Correct
tsx scripts/publish.ts --version 1.0.0-beta.1
```
Expand All @@ -219,7 +219,7 @@ Publishes to: `DiscourseGraphs/discourse-graph-obsidian`
- Verify repository exists and is accessible

5. **"Required build files missing"**
- Run `npm run build` manually to check for build errors
- Run `pnpm run build` manually to check for build errors
- Ensure TypeScript compiles without errors

6. **BRAT picking wrong version**
Expand Down Expand Up @@ -247,10 +247,10 @@ This is why the naming convention is critical for ensuring the right version get

### Key Functions:
- `isExternalRelease()` - Determines if version is external (stable/beta) or internal (alpha)
- `updateMainBranch()` - Uses GitHub API to create proper commits
- `updateMainBranch()` - Uses GitHub API to create proper commits
- `createGithubRelease()` - Creates releases with assets and automatic pre-release detection
- `updateManifest()` - Updates version in manifest.json

### Security:
- Uses GitHub API instead of git commands for better security
- Never commits tokens to repository
- Never commits tokens to repository
Loading
Loading