Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
6a06cca
Merge pull request #1 from 0xranx/feat/idea
0xranx Dec 25, 2025
92f95e1
refactor: improve styling and layout in SearchModal component
0xranx Dec 25, 2025
af0f827
feat: add error handling and retry functionality in AI reflection pro…
0xranx Dec 26, 2025
28a9d39
feat: Implement Ideas Box functionality
0xranx Dec 30, 2025
8f330c0
Merge pull request #2 from 0xranx/feat/ios
0xranx Dec 30, 2025
38013f1
feat: add swipeable actions for entry management in IdeasScreen
0xranx Jan 5, 2026
3d08f1c
Merge pull request #3 from 0xranx/feat/ios
0xranx Jan 5, 2026
ada51f1
feat: update bundle identifier and enhance macOS build process
0xranx Jan 5, 2026
e02bc85
Merge pull request #4 from 0xranx/feat/bundle
0xranx Jan 5, 2026
489a1d5
feat: enhance DMG validation and improve entry rendering in IdeasScreen
0xranx Jan 5, 2026
20f0e6d
feat: add keyboard dismissal functionality and localization updates i…
0xranx Jan 16, 2026
f943c61
feat: implement dark mode support and theme context management
0xranx Jan 16, 2026
d03e4eb
fix: wrap array responses in object for MCP structuredContent compliance
wormuz Jan 16, 2026
d0eca98
Merge pull request #7 from 0xranx/feat/darkmode
0xranx Jan 16, 2026
5ceb5dd
feat: add release notes generation and changelog template
0xranx Jan 16, 2026
37315ad
Merge pull request #9 from wormuz/main
0xranx Jan 16, 2026
2908f74
feat: add Linux x86_64 native bindings support
wormuz Jan 16, 2026
c896e4b
Merge branch '0xranx:main' into main
wormuz Jan 16, 2026
4a191c7
fix: add default limit for oc_manifest to prevent NAPI null conversio…
wormuz Jan 16, 2026
9ccf13a
feat: add Claude workflows for OpenContext commands
wormuz Jan 17, 2026
4435f05
feat: enhance tray icon functionality and window management
0xranx Jan 17, 2026
4f01aa0
Merge pull request #12 from 0xranx/feat/mtr
0xranx Jan 17, 2026
8161b6c
feat: add about icon and metadata to application menu
0xranx Jan 17, 2026
9ab7221
Merge pull request #13 from 0xranx/fix/vb
0xranx Jan 17, 2026
e21d383
feat: update desktop build workflow to include release notes and draf…
0xranx Jan 17, 2026
b44058c
Revert "feat: add Claude workflows for OpenContext commands"
wormuz Jan 17, 2026
c8c855e
Merge pull request #10 from wormuz/main
0xranx Jan 18, 2026
c106387
feat: update README and command definitions for tool integrations
0xranx Jan 18, 2026
ee2ec87
Merge pull request #14 from 0xranx/feat/extend-agents
0xranx Jan 18, 2026
9a57cb2
feat: extend desktop build workflow to support Linux
wormuz Jan 18, 2026
1a73ca6
Merge pull request #15 from wormuz/main
0xranx Jan 18, 2026
5ab9773
feat: update README files to enhance tool integration details
0xranx Jan 18, 2026
d74f07b
feat: add skills and slash commands section to README files
0xranx Jan 18, 2026
c6350e9
feat: integrate agent components
0xranx Jan 24, 2026
cd72f76
refactor: update README files to use a table layout for images
0xranx Jan 24, 2026
5e5d07c
refactor: streamline table creation and addition logic in vector store
0xranx Jan 24, 2026
2ce2811
Merge pull request #19 from 0xranx/feat/vibe_coding_agent
0xranx Jan 25, 2026
25c79bc
chore: update package-lock.json with dependency version upgrades and …
0xranx Jan 25, 2026
0b1e5fa
feat: enhance desktop build workflow with tag validation and optional…
0xranx Jan 25, 2026
7fc4d4a
fix(indexer): skip missing files during build_all indexing
wormuz Jan 28, 2026
333af3d
Merge pull request #20 from wormuz/fix/skip-missing-files-on-index
0xranx Jan 28, 2026
a0efe7d
feat: add CLI smoke test workflow and improve error handling in nativ…
0xranx Jan 28, 2026
73aaf7e
Merge pull request #21 from 0xranx/fix/linux_native_bindings
0xranx Jan 28, 2026
216f1ab
chore: update @aicontextlab/core-native to version 0.2.1 in package.j…
0xranx Jan 28, 2026
1d179a9
chore: remove @aicontextlab/core-native dependency from package-lock.…
0xranx Jan 28, 2026
400ac83
Merge pull request #22 from 0xranx/fix/linux_native_bindings
0xranx Jan 28, 2026
7b459f4
fix(embedding): reduce MAX_CHARS to prevent context length errors
wormuz Jan 28, 2026
244f04d
Merge pull request #23 from wormuz/fix/reduce-embedding-max-chars
0xranx Jan 29, 2026
526353c
fix: update Tiptap code block extension and add highlight.js support
0xranx Jan 30, 2026
132b00c
feat: add Tab indentation support for code blocks in TiptapMarkdown
0xranx Jan 30, 2026
c33d722
feat: implement clipboardTextSerializer for code block content in Tip…
0xranx Jan 30, 2026
bfa2d8e
Merge pull request #28 from 0xranx/fix/code_editor
0xranx Jan 30, 2026
90db3e7
feat: detect and reconcile docs created outside the API
wormuz May 6, 2026
6f5f7b4
feat(mcp): expose oc_save_doc tool
wormuz May 6, 2026
86a6248
style: apply rustfmt to opencontext-core
wormuz May 6, 2026
f46684f
fix(lint): use &Path instead of &PathBuf in scan_md_files
wormuz May 7, 2026
ff15b70
fix(mcp): clarify oc_search vs oc_manifest routing for agents
wormuz May 8, 2026
f7f6933
fix(ci): resolve fmt and JS test failures
wormuz May 8, 2026
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
19 changes: 0 additions & 19 deletions .cursor/commands/opencontext-context.md

This file was deleted.

25 changes: 0 additions & 25 deletions .cursor/commands/opencontext-create.md

This file was deleted.

16 changes: 0 additions & 16 deletions .cursor/commands/opencontext-help.md

This file was deleted.

16 changes: 0 additions & 16 deletions .cursor/commands/opencontext-iterate.md

This file was deleted.

18 changes: 0 additions & 18 deletions .cursor/commands/opencontext-search.md

This file was deleted.

27 changes: 27 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
changelog:
template: |
## Downloads
- **macOS**: Download `.dmg` and double-click to install.
- **Windows**: Download `.msi` or `.exe`.

## 更新日志
$CHANGES

## Contributors
$CONTRIBUTORS
categories:
- title: Features
labels:
- feature
- enhancement
- title: Bug Fixes
labels:
- bug
- fix
- title: Documentation
labels:
- docs
- documentation
- title: Other Changes
labels:
- "*"
5 changes: 4 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ jobs:
cd crates/opencontext-node
npm ci
npm run build:debug


- name: Use local native build for tests
run: npm uninstall @aicontextlab/core-native

- name: Run JS tests
run: npm test

Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/cli-smoke.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: CLI smoke test (no publish)

on:
workflow_dispatch:

jobs:
linux-cli-smoke:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"

- name: Install dependencies
run: npm install

- name: Install CLI from repo (no publish)
run: npm install -g .

- name: CLI help
run: oc --help

- name: CLI init (expected to pass; if it fails, we capture logs)
run: oc init
138 changes: 128 additions & 10 deletions .github/workflows/desktop-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,21 +37,29 @@ jobs:
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Version: $VERSION"

- name: Ensure tag exists (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && !startsWith(github.ref, 'refs/tags/desktop-v')
run: |
if [ "${{ steps.get_version.outputs.version }}" = "0.0.0-dev" ]; then
echo "Missing version for workflow_dispatch. Provide an input version." >&2
exit 1
fi
TAG="desktop-v${{ steps.get_version.outputs.version }}"
git fetch --tags
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "Tag $TAG already exists."
exit 0
fi
git tag "$TAG"
git push origin "$TAG"

- name: Create Release
id: create_release
uses: softprops/action-gh-release@v1
with:
tag_name: desktop-v${{ steps.get_version.outputs.version }}
name: OpenContext Desktop v${{ steps.get_version.outputs.version }}
body: |
## OpenContext Desktop v${{ steps.get_version.outputs.version }}

### 下载
- **macOS**: 下载 `.dmg` 文件,双击安装
- **Windows**: 下载 `.msi` 或 `.exe` 文件安装

### 更新日志
请查看 [CHANGELOG](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md)
generate_release_notes: true
draft: true
prerelease: false

Expand All @@ -67,6 +75,9 @@ jobs:
- platform: windows-latest
target: x86_64-pc-windows-msvc
artifact_name: windows
- platform: ubuntu-22.04
target: x86_64-unknown-linux-gnu
artifact_name: linux

runs-on: ${{ matrix.platform }}

Expand Down Expand Up @@ -97,8 +108,49 @@ jobs:
if: matrix.platform == 'windows-latest'
run: choco install protoc -y

- name: Install Linux dependencies
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf \
protobuf-compiler

- name: Install npm dependencies
run: npm ci
run: npm ci --include=optional

- name: Import Apple signing certificate
if: matrix.platform == 'macos-latest'
env:
APPLE_CERTIFICATE_P12: ${{ secrets.APPLE_CERTIFICATE_P12 }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
run: |
CERT_PATH="$RUNNER_TEMP/apple_cert.p12"
KEYCHAIN_PATH="$RUNNER_TEMP/app-signing.keychain-db"
echo "$APPLE_CERTIFICATE_P12" | base64 -D > "$CERT_PATH"
security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH"
security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
security import "$CERT_PATH" -P "$APPLE_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k "$KEYCHAIN_PATH"
security set-key-partition-list -S apple-tool:,apple: -s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
security list-keychains -d user -s "$KEYCHAIN_PATH"
echo "KEYCHAIN_PATH=$KEYCHAIN_PATH" >> $GITHUB_ENV

- name: Resolve signing identity
if: matrix.platform == 'macos-latest'
run: |
SIGNING_IDENTITY=$(security find-identity -v -p codesigning "$KEYCHAIN_PATH" | awk -F\" '/Developer ID Application/ {print $2; exit}')
if [ -z "$SIGNING_IDENTITY" ]; then
echo "No Developer ID Application identity found in keychain." >&2
security find-identity -v -p codesigning "$KEYCHAIN_PATH" || true
exit 1
fi
echo "APPLE_SIGNING_IDENTITY=$SIGNING_IDENTITY" >> $GITHUB_ENV

- name: Update version in tauri.conf.json
run: |
Expand All @@ -111,17 +163,69 @@ jobs:

- name: Build Tauri app (macOS)
if: matrix.platform == 'macos-latest'
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_SIGNING_IDENTITY: ${{ env.APPLE_SIGNING_IDENTITY }}
run: npm run tauri build -- --target universal-apple-darwin

- name: Notarize and staple DMG (macOS)
if: matrix.platform == 'macos-latest'
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: |
DMG_PATH=$(ls src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg | head -n 1)
if [ -z "$DMG_PATH" ]; then
echo "No DMG found to notarize." >&2
exit 1
fi
xcrun notarytool submit "$DMG_PATH" --apple-id "$APPLE_ID" --password "$APPLE_PASSWORD" --team-id "$APPLE_TEAM_ID" --wait
xcrun stapler staple "$DMG_PATH"

- name: Verify notarized DMG (macOS)
if: matrix.platform == 'macos-latest'
run: |
DMG_PATH=$(ls src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg | head -n 1)
if [ -z "$DMG_PATH" ]; then
echo "No DMG found to verify." >&2
exit 1
fi
xcrun stapler validate "$DMG_PATH"
MOUNT_DIR=$(mktemp -d)
cleanup() {
if mount | grep -q "$MOUNT_DIR"; then
hdiutil detach "$MOUNT_DIR" -quiet || true
fi
rm -rf "$MOUNT_DIR"
}
trap cleanup EXIT
hdiutil attach "$DMG_PATH" -nobrowse -quiet -mountpoint "$MOUNT_DIR"
APP_PATH=$(find "$MOUNT_DIR" -maxdepth 1 -type d -name "*.app" | head -n 1)
if [ -z "$APP_PATH" ]; then
echo "No .app found inside DMG." >&2
exit 1
fi
spctl -a -vv --type execute "$APP_PATH"

- name: Build Tauri app (Windows)
if: matrix.platform == 'windows-latest'
run: npm run tauri build

- name: Build Tauri app (Linux)
if: matrix.platform == 'ubuntu-22.04'
run: npm run tauri build -- --bundles appimage

- name: Upload to Release (macOS)
if: matrix.platform == 'macos-latest'
uses: softprops/action-gh-release@v1
with:
tag_name: desktop-v${{ needs.create-release.outputs.version }}
name: OpenContext Desktop v${{ needs.create-release.outputs.version }}
generate_release_notes: true
draft: true
files: |
src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg

Expand All @@ -130,10 +234,22 @@ jobs:
uses: softprops/action-gh-release@v1
with:
tag_name: desktop-v${{ needs.create-release.outputs.version }}
name: OpenContext Desktop v${{ needs.create-release.outputs.version }}
generate_release_notes: true
draft: true
files: |
src-tauri/target/release/bundle/msi/*.msi
src-tauri/target/release/bundle/nsis/*.exe

- name: Upload to Release (Linux)
if: matrix.platform == 'ubuntu-22.04'
uses: softprops/action-gh-release@v1
with:
tag_name: desktop-v${{ needs.create-release.outputs.version }}
draft: true
files: |
src-tauri/target/release/bundle/appimage/*.AppImage

publish-release:
needs: [create-release, build]
runs-on: ubuntu-latest
Expand All @@ -142,4 +258,6 @@ jobs:
uses: softprops/action-gh-release@v1
with:
tag_name: desktop-v${{ needs.create-release.outputs.version }}
name: OpenContext Desktop v${{ needs.create-release.outputs.version }}
generate_release_notes: true
draft: false
Loading