Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
7effcfd
Add YouTube video link to README
HomenShum Sep 17, 2025
bd2713d
feat(welcome): embed inline YouTube demo above Get Started section
HomenShum Sep 17, 2025
32f591f
Fixed Seeding to Auto-Seed upon first visit to DocumentsHomeHub.tsx; …
HomenShum Sep 17, 2025
32ba6a7
Try in AI Chat:
HomenShum Sep 18, 2025
47dada3
feat(tags): color-coded header pills, inline rename, ghost add pill, …
HomenShum Sep 18, 2025
b285358
docs(readme): update for multi-line chat input and Convex agent fixes…
HomenShum Sep 18, 2025
05e5a95
docs: add 091825 screenshots to CHANGELOG and README; add 2025-09-19 …
HomenShum Sep 19, 2025
539e064
docs(README): add 2025-09-19 entry to Changelog (preview) pointing to…
HomenShum Sep 19, 2025
965aba8
refactor(ui): consolidate Home Hubs; migrate legacy pages into src/co…
HomenShum Sep 19, 2025
eb7b225
chore(docs): update 2025-09-19 changelog and README with AI Agent Tim…
HomenShum Sep 19, 2025
5a9561d
AI Agent Timeline preview coming soon
HomenShum Sep 19, 2025
5efd891
docs: update README and CHANGELOG with 091925_mini_calendar_full_cale…
HomenShum Sep 19, 2025
b55a950
ui: standardize top bar and hero headers via shared components; add P…
HomenShum Sep 19, 2025
dc817ec
docs(092325): README and CHANGELOG updated with 092325 updated_screen…
HomenShum Sep 23, 2025
d116463
docs: replace 092325 image references with existing 092323 screenshot…
HomenShum Sep 23, 2025
4ab1a12
docs: add Linkup API integration section and Orchestrator step-by-ste…
HomenShum Sep 23, 2025
c6ed839
docs: add Agents CLI quickstart and Tests (orchestrator live+eval) to…
HomenShum Sep 23, 2025
0cd80c6
docs: update README (manual edits)
HomenShum Sep 23, 2025
f5e5721
feat(timeline): dedicated Timeline section and consistent panel order
HomenShum Sep 24, 2025
8dc6f34
feat(timeline): tighten Fit window to content (less whitespace)
HomenShum Sep 25, 2025
43d1d19
feat(orchestrator): allow eval to add tool/payload nodes; enable payl…
HomenShum Oct 3, 2025
395c806
fix(web.fetch): validate URLs and reject unresolved template variables
HomenShum Oct 3, 2025
fb0b067
docs: add web.fetch template variable fix documentation
HomenShum Oct 3, 2025
024abf0
docs: add RELEASES.md with version history and upgrade guide
HomenShum Oct 3, 2025
801e6e8
docs: update RELEASES.md with uniform semantic versioning tags
HomenShum Oct 3, 2025
af0f124
docs: correct earlier releases ordering and labels to match chronolog…
HomenShum Oct 3, 2025
7ffc8b3
docs: update release dates to October 2025
HomenShum Oct 3, 2025
18c6c68
ci: auto-create GitHub releases on tag push; optional Discussions cro…
HomenShum Oct 3, 2025
fd85503
feat: Multi-agent orchestration, analytics, and UI enhancements
HomenShum Oct 4, 2025
19df9aa
fix: make AIChatPanel importable via '@/components/AIChatPanel'\n\n- …
HomenShum Oct 14, 2025
5100338
Update model to gpt-5-chat-latest and refactor FastAgentPanel streami…
HomenShum Oct 15, 2025
348e37f
fix: upgrade AI SDK packages to v5 for @convex-dev/agent compatibility
HomenShum Oct 15, 2025
49a2436
fix: Enable real-time streaming in FastAgentPanel with Agent component
HomenShum Oct 15, 2025
d48f616
fix: Resolve choppy streaming by properly consuming textStream
HomenShum Oct 15, 2025
c8f64e3
feat: Redesign UIMessageBubble to handle all content types and fix st…
HomenShum Oct 15, 2025
f0813e4
feat: Fix scrolling and implement Linkup search tool
HomenShum Oct 15, 2025
0c09150
docs: Add comprehensive Linkup integration documentation
HomenShum Oct 15, 2025
b664a05
feat: Add image support to Linkup search tool
HomenShum Oct 15, 2025
afedbc0
docs: Update Linkup integration docs with image search support
HomenShum Oct 15, 2025
501a4b6
feat: Implement comprehensive Convex Agent tools for document, media,…
HomenShum Oct 15, 2025
deefff3
docs: Add comprehensive implementation summary for Agent tools
HomenShum Oct 15, 2025
fb39537
fix: Resolve TypeScript errors in Agent tools
HomenShum Oct 15, 2025
a1025bb
fix: Final TypeScript error fixes for Agent tools
HomenShum Oct 15, 2025
4033a77
feat: Implement comprehensive LLM-as-a-Judge evaluation system
HomenShum Oct 15, 2025
45f4153
docs: Add comprehensive evaluation system summary
HomenShum Oct 15, 2025
94faf4d
feat: Upgrade to GPT-5 with structured outputs for LLM-as-a-Judge
HomenShum Oct 15, 2025
b832ab9
fix: CRITICAL - Agent now generates text responses after tool calls
HomenShum Oct 15, 2025
1eefc8d
feat: Add golden dataset seeding and userId support for evaluation
HomenShum Oct 15, 2025
d26fc83
docs: Add comprehensive evaluation progress summary
HomenShum Oct 15, 2025
12b4746
feat: Implement userId parameter support for Agent tools evaluation -…
HomenShum Oct 15, 2025
c628b20
docs: Add comprehensive final evaluation results - 50% pass rate achi…
HomenShum Oct 15, 2025
cd274d0
feat: Achieve 100% pass rate on quick evaluation tests!
HomenShum Oct 15, 2025
04d7a5e
docs: Add comprehensive 100% success documentation and setup full tes…
HomenShum Oct 15, 2025
fb10758
feat: Add 13 comprehensive test cases - Total 33 tests
HomenShum Oct 15, 2025
84a3884
feat: Add YouTube search, API usage tracking, file upload, and Mermai…
HomenShum Oct 15, 2025
fa2ac7f
fix: Add userId support to full test suite evaluator + refine test ex…
HomenShum Oct 15, 2025
49b22fc
feat: Implement parallel test execution for all 33 tests - 37.5x faster!
HomenShum Oct 15, 2025
ad5f4b0
feat: Add YouTube search, API usage tracking, file upload, and Mermai…
HomenShum Oct 15, 2025
dfe84b6
feat: Add YouTube search, API usage tracking, file upload, and Mermai…
HomenShum Oct 15, 2025
afc0c83
feat: Build orchestrator architecture (WIP) + revert to monolithic agent
HomenShum Oct 15, 2025
fecc4e7
wip: Attempt to fix mutation tool calls with explicit instructions
HomenShum Oct 15, 2025
d257f81
feat: Switch all models to GPT-5 series
HomenShum Oct 15, 2025
c7e5027
feat: Switch orchestrator models to GPT-5 series
HomenShum Oct 15, 2025
bb87a96
feat: Improve evaluator flexibility - 57.6% pass rate
HomenShum Oct 15, 2025
16ecc7e
Fix image search fallback to web search
HomenShum Oct 15, 2025
dd2081e
feat: Implement coordinator agent orchestration with specialized agents
HomenShum Oct 16, 2025
d7fb7ad
feat: Implement hierarchical message rendering for coordinator agent …
HomenShum Oct 16, 2025
6524512
feat: Implement FileViewer component for SEC filings and documents
HomenShum Oct 16, 2025
99ddb28
feat: Implement SEC entity disambiguation with LLM validation and HIT…
HomenShum Oct 16, 2025
c5ebbb3
feat: Extend entity disambiguation to people, events, and news articles
HomenShum Oct 16, 2025
1754169
feat: Improve Fast Agent Panel streaming UI/UX
HomenShum Oct 16, 2025
60ed098
fix: Thread list not updating - use lastMessageAt for updatedAt field
HomenShum Oct 16, 2025
572a228
debug: Add logging to diagnose thread message count issue
HomenShum Oct 16, 2025
18904c2
fix: Use agent message count for streaming threads
HomenShum Oct 16, 2025
42e20ee
fix: Extract tool names correctly from ToolUIPart type field
HomenShum Oct 16, 2025
84e98a6
feat: Add media preview in final answer
HomenShum Oct 16, 2025
ea33324
feat: Add interactive tool result popovers
HomenShum Oct 16, 2025
2ec80b9
docs: Add Phase 1 & 2 completion summary
HomenShum Oct 16, 2025
e707e83
fix: Improve tool result popover data passing and simplify media hand…
HomenShum Oct 16, 2025
c490f30
docs: Add tool result popover implementation summary
HomenShum Oct 16, 2025
0fbe4e9
fix: Handle undefined/empty tool results in popover
HomenShum Oct 16, 2025
07ac255
Fix Fast Agent Panel issues: SEC API error handling and media extract…
HomenShum Oct 16, 2025
7a80b3f
feat: Complete FastAgentPanel testing and fix userId context issue
HomenShum Oct 17, 2025
a387fd9
feat: Implement best-effort execution and intent-based typing indicat…
HomenShum Oct 17, 2025
4513e5a
feat: redesign DossierViewer with split-panel layout matching VDR pat…
HomenShum Oct 18, 2025
fdfaad8
fix: align DossierViewer layout consistency with FileViewer (VDR patt…
HomenShum Oct 18, 2025
562ca6c
refactor: complete DossierViewer redesign with vertical split and fil…
HomenShum Oct 18, 2025
65adef5
fix: move hooks before early returns in DossierViewer
HomenShum Oct 18, 2025
9bfb3fa
fix: resolve 'No content available' error appearing with valid content
HomenShum Oct 18, 2025
0ac97a5
fix: CRITICAL - ensure all hooks called before early returns in Dossi…
HomenShum Oct 18, 2025
5e752ec
feat: redesign DossierViewer to match FileViewer (VDR) pattern with A…
HomenShum Oct 18, 2025
37ab6d9
Consolidated MD file
HomenShum Oct 18, 2025
85a7ba1
fix: remove overflow-hidden from media gallery wrapper to show content
HomenShum Oct 18, 2025
54727bd
fix: do not early-return when dossier has no EditorJS blocks; render …
HomenShum Oct 18, 2025
8080c54
fix(react): stabilize hook order in DossierViewer
HomenShum Oct 18, 2025
e25b288
feat(dossier): show linked media assets from Convex when transcript h…
HomenShum Oct 18, 2025
734865a
prosemirror fix
HomenShum Oct 18, 2025
8c03e3a
feat(dossier): extract URLs from paragraph blocks into Documents section
HomenShum Oct 18, 2025
56ce565
debug(dossier): add comprehensive logging to trace media extraction
HomenShum Oct 18, 2025
0293b3a
debug(dossier): add document query logging to trace content retrieval
HomenShum Oct 18, 2025
292d509
fix(dossier): prevent ProseMirror from overwriting EditorJS content
HomenShum Oct 18, 2025
3051b0b
chore(dossier): remove debug logging after fixing ProseMirror conflict
HomenShum Oct 18, 2025
04d4ae6
fast agent panel, save to dossier view document patch.
HomenShum Oct 18, 2025
09d8763
Fix all TypeScript errors and ESLint warnings
HomenShum Oct 19, 2025
d212824
Fix 9 TypeScript errors in test files
HomenShum Oct 19, 2025
2d50f19
Fix 35 TypeScript errors in test files
HomenShum Oct 19, 2025
c0fb8a8
Fix 4 TypeScript errors in test files
HomenShum Oct 19, 2025
4a9dedf
Fix 4 TypeScript errors in testMultiAgentOrchestration.ts
HomenShum Oct 19, 2025
8a0af07
Fix 2 TypeScript errors in testMultiAgentOrchestration.ts
HomenShum Oct 19, 2025
64a3d61
feat: Complete implementation of Query Pattern 1 (Criteria-Based Sear…
HomenShum Oct 19, 2025
de7bdb4
fix: Fast Agent Panel - Display final answer prominently with placeho…
HomenShum Oct 19, 2025
1e044db
feat: Implement hashtag dossier system with hybrid search
HomenShum Oct 20, 2025
d57e7cc
feat: migrate events/tasks to document-based system with clickable ca…
HomenShum Oct 21, 2025
cfc2b68
feat: implement single-click mini popover and double-click full docum…
HomenShum Oct 21, 2025
a85d65c
minor fixes
HomenShum Oct 21, 2025
ddc8d24
feat: modern SaaS landing page with visual enhancements
HomenShum Nov 10, 2025
ad73e50
feat: show chat input immediately for first-hand experience
HomenShum Nov 10, 2025
850c5d6
fix: resolve TypeScript deployment errors in fastAgentPanelStreaming
HomenShum Nov 10, 2025
ce2147d
fix: critical agent chat issues - enable send button, fix layout bloc…
HomenShum Nov 10, 2025
eb6f613
chore: remove legacy documentation and test artifacts
HomenShum Nov 10, 2025
61c10a9
chore: gitignore test artifacts and reports
HomenShum Nov 10, 2025
a52f35d
fix: enable pointer events on interactive elements in hero section
HomenShum Nov 10, 2025
b271ad6
feat: WelcomeLanding live streaming agent progress and UX polish
HomenShum Nov 13, 2025
3d33196
new update
HomenShum Nov 21, 2025
b068010
new update - landing + fast agent
HomenShum Nov 21, 2025
1c9d439
feat: UI optimization & global search cache (11/22/2025)
HomenShum Nov 23, 2025
e855a32
feat: implement Convex persistence for core_agent_server and fix depe…
HomenShum Nov 23, 2025
a52f9cf
feat: Add interactive follow-up enrichment UX with contextual suggest…
HomenShum Nov 23, 2025
db0638a
fix: resolve all deployment bugs - fix module paths, auth config, dup…
HomenShum Nov 23, 2025
98e3999
Fix delegation tool and SEC agent typing
HomenShum Nov 23, 2025
8871248
Propagate temporal context into delegation prompts
HomenShum Nov 24, 2025
6c0a86d
Enforce timestamped, source-linked delegation outputs
HomenShum Nov 24, 2025
2d90064
Add artifacts tab for collected agent evidence
HomenShum Nov 24, 2025
53a72a3
Add artifacts tab to welcome landing newsletter view
HomenShum Nov 24, 2025
71feb87
Improve welcome landing artifact stability
HomenShum Nov 24, 2025
76d4b0c
Add Jest artifacts tab coverage
HomenShum Nov 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
676 changes: 0 additions & 676 deletions .augment/rules/convex.instructions.md

This file was deleted.

370 changes: 185 additions & 185 deletions .cursor/rules/convex_rules.mdc

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Convex
CONVEX_URL=https://your-deployment.convex.cloud
CONVEX_DEPLOY_KEY=your-deploy-key

# OpenAI
OPENAI_API_KEY=sk-your-openai-api-key

# Linkup (for web search)
LINKUP_API_KEY=your-linkup-api-key

# Voice Server
VOICE_SERVER_PORT=3001
CLIENT_URL=http://localhost:5173

# Auth (if using Convex Auth)
AUTH_SECRET=your-auth-secret

100 changes: 100 additions & 0 deletions .github/workflows/auto-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Auto Release on Tag

on:
push:
tags:
- 'v*'

jobs:
release:
name: Create GitHub Release and optional Discussion
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Prepare release notes
id: notes
shell: bash
run: |
set -euo pipefail
TAG="${GITHUB_REF_NAME}"
NOTES_FILE="RELEASE_NOTES_${TAG}.md"
if [ -f "$NOTES_FILE" ]; then
echo "notes_path=$NOTES_FILE" >> "$GITHUB_OUTPUT"
else
PREV_TAG=$(git tag -l 'v[0-9]*' | sort -V | awk -v t="$TAG" '$0<t {last=$0} END{print last}')
if [ -n "$PREV_TAG" ]; then RANGE="$PREV_TAG..$TAG"; else RANGE="$TAG"; fi
TEMP="$(mktemp)"
{
echo "# Release $TAG"
echo
echo "**Generated:** $(date -u '+%Y-%m-%d %H:%M:%S UTC')"
echo
echo "## Changes"
git log --oneline ${RANGE}
} > "$TEMP"
echo "notes_path=$TEMP" >> "$GITHUB_OUTPUT"
fi

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
body_path: ${{ steps.notes.outputs.notes_path }}
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create GitHub Discussion (Announcements)
uses: actions/github-script@v7
continue-on-error: true
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const tag = process.env.GITHUB_REF_NAME;
const { owner, repo } = context.repo;
// Find an Announcements category
const categories = await github.graphql(`
query($owner:String!, $repo:String!){
repository(owner:$owner, name:$repo){
id
discussionCategories(first: 50){ nodes{ id name } }
}
}`, { owner, repo });
const repoId = categories.repository.id;
const cats = categories.repository.discussionCategories.nodes || [];
const ann = cats.find(c => /announce/i.test(c.name));
if (!ann) {
core.info('No Announcements category found; skipping discussion creation.');
return;
}
const fs = require('fs');
const notesPath = `${{ steps.notes.outputs.notes_path }}`;
let body = `Release ${tag} is out. See the full notes in the GitHub Release.`;
try {
const txt = fs.readFileSync(notesPath, 'utf8');
const first = (txt.split(/\r?\n/).find(Boolean) || '').replace(/^#\s*/, '');
body = `${first}\n\nSee the GitHub Release for details.`;
} catch {}
const create = await github.graphql(`
mutation($repoId:ID!, $catId:ID!, $title:String!, $body:String!){
createDiscussion(input:{repositoryId:$repoId, categoryId:$catId, title:$title, body:$body}){
discussion{ number }
}
}`, { repoId, catId: ann.id, title: `Release ${tag}`, body });
core.info(`Created discussion #${create.createDiscussion.discussion.number}`);

- name: Pin Discussion (best effort)
if: ${{ !cancelled() }}
uses: actions/github-script@v7
continue-on-error: true
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
core.info('Pinning discussions may require elevated permissions; skipping by default.');

53 changes: 53 additions & 0 deletions .github/workflows/tag-chronology.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Validate Tag Chronology

on:
push:
tags:
- 'v*'
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:

jobs:
validate:
name: Verify semantic version tags follow commit chronology
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # fetch full history & tags

- name: Fetch all tags
run: |
git fetch --tags --force --prune

- name: Print tags and commit dates
run: |
echo "Tags (semver-sorted) with commit dates:"
git tag -l 'v[0-9]*' | sort -V | while read t; do \
d=$(git log -1 --format=%ct "$t"); \
echo "$t $(date -d @${d} -u '+%Y-%m-%d %H:%M:%S UTC')"; \
done

- name: Validate chronological order
run: |
set -euo pipefail
tags=$(git tag -l 'v[0-9]*' | sort -V)
prev=""
prev_date=0
for t in $tags; do
d=$(git log -1 --format=%ct "$t")
if [ -n "$prev" ] && [ "$d" -lt "$prev_date" ]; then
echo "Tag chronology invalid: $t ($(date -d @${d} -u '+%Y-%m-%d %H:%M:%S UTC')) < $prev ($(date -d @${prev_date} -u '+%Y-%m-%d %H:%M:%S UTC'))"
echo "Hint: Newer tag versions must point to commits no earlier than the previous version."
exit 1
fi
prev="$t"
prev_date="$d"
done
echo "Chronology validation passed."

26 changes: 25 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,28 @@ dist-ssr
*.sw?

# Ignored for the template, you probably want to remove it:
package-lock.json
package-lock.json
*storybook.log
storybook-static

# Temporary/refactoring summary files
*_REFACTORING_SUMMARY.md
*_COMPLETE.md
*_QUICKSTART.md
RELEASE_NOTES_*.md

# Test artifacts
coverage/
.nyc_output/
test-results/
playwright-report/

# Temporary files
temp_*.txt
temp_*.md

# Implementation notes (keep only core docs)
docs/
!docs/FEATURES.md
!docs/DESIGN_SYSTEM.md
!docs/CODESTYLE.md
20 changes: 20 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import type { StorybookConfig } from '@storybook/react-vite';

const config: StorybookConfig = {
"stories": [
"../src/**/*.mdx",
"../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"
],
"addons": [
"@chromatic-com/storybook",
"@storybook/addon-docs",
"@storybook/addon-onboarding",
"@storybook/addon-a11y",
"@storybook/addon-vitest"
],
"framework": {
"name": "@storybook/react-vite",
"options": {}
}
};
export default config;
14 changes: 14 additions & 0 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import type { Preview } from '@storybook/react-vite'

const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
};

export default preview;
Loading