Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
543ef59
feat(WS-5): replace N+1 graph walks with SPARQL model methods
HexaField Apr 20, 2026
5d8a540
feat(WS-6): add ChannelSummary and MessageSummary lightweight read mo…
HexaField Apr 20, 2026
5b71137
feat(WS-3): fix query scoping in composables
HexaField Apr 20, 2026
8f1b6e5
feat(WS-4): replace raw listeners with scoped live queries
HexaField Apr 20, 2026
b75e9da
fix: strip comments in structural tests to avoid false positives
HexaField Apr 20, 2026
df99ce3
refactor: replace workstream references with descriptive comments
HexaField Apr 20, 2026
ac45650
fix(api): use GROUP BY aggregation in recentConversations() SPARQL
HexaField Apr 20, 2026
93eb2fb
fix(app): add concurrency guard to refreshAllData()
HexaField Apr 20, 2026
7d99cb0
fix(test): harden scoping tests to fail on regex mismatch
HexaField Apr 20, 2026
4af6d86
refactor(timeline): replace refreshAllData with reactive watchEffect …
HexaField Apr 20, 2026
e57359f
refactor(test): replace Jest with Vitest, rewrite structural tests as…
HexaField Apr 20, 2026
9e8d299
fix: revert ad4m overrides from file: paths back to version refs
HexaField Apr 20, 2026
e4981dd
ci: retrigger Netlify deploy (file: overrides reverted)
HexaField Apr 20, 2026
e9c8142
fix: revert packages/ui/meta.json to dev state (auto-generated)
HexaField Apr 21, 2026
8cd9a78
fix: regenerate pnpm-lock.yaml cleanly (remove build-script residue)
HexaField Apr 21, 2026
5441db5
ci: trigger rebuild and Netlify redeploy
HexaField Apr 21, 2026
f502a4a
fix: commit uncommitted feat branch changes (CreateCommunityModal, lo…
HexaField Apr 21, 2026
1162ad2
Merge remote-tracking branch 'github/dev' into feat/architectural-opt…
HexaField Apr 21, 2026
7e2cc98
ci: retrigger Netlify deploy after AD4M review fixes
HexaField Apr 21, 2026
2b1fdc7
ci: retrigger Netlify deploy
HexaField Apr 21, 2026
bf3f620
fix: regenerate pnpm-lock.yaml without file: overrides (fixes Netlify…
HexaField Apr 21, 2026
48aab0c
fix: SPARQL literal matching + Vue proxy safety for imported perspect…
HexaField Apr 22, 2026
e839634
feat: migrate custom SPARQL queries from GRAPH to RDF 1.2 reifier pat…
HexaField Apr 23, 2026
7749dbd
fix: handle private:// prefix and plain UUIDs in community routes
HexaField Apr 23, 2026
194936b
fix: guard against undefined channel in sidebar and community view te…
HexaField Apr 23, 2026
3bf1d94
fix: prefer transcript_started_at over link timestamp for transcripti…
HexaField Apr 26, 2026
a1f2d60
ci: retrigger Netlify deploy
HexaField Apr 27, 2026
3e54d28
ci: retrigger Netlify deploy (target: dev)
HexaField Apr 27, 2026
fe411c3
Merge remote-tracking branch 'origin/dev' into feat/sparql-1.2
HexaField Apr 27, 2026
f71830a
Merge branch 'feat/sparql-1.2' of https://github.com/coasys/flux into…
HexaField Apr 27, 2026
6dc9b66
ci: add lint + typecheck to CI workflows
HexaField Apr 27, 2026
ca30111
fix: use targeted SPARQL subscription for channel item updates
HexaField Apr 27, 2026
363b267
fix: address CodeRabbit review feedback
HexaField Apr 27, 2026
d3acbfb
fix: populate conversation cache in getRecentConversations/getPinnedC…
HexaField Apr 28, 2026
1abff18
fix: update channel view handling to use fullChannel instance for per…
HexaField Apr 28, 2026
185159d
fix: enhance conversation hydration in community service for better s…
HexaField Apr 28, 2026
21c3d66
fix: guard async channel watchers against stale responses
HexaField Apr 28, 2026
0704801
fix: use shallowRef for myPerspectives to prevent Vue Proxy breaking …
HexaField Apr 29, 2026
af67058
feat: convert Prolog queries to SPARQL (Phase 4)
HexaField Apr 28, 2026
5a11363
feat: replace addListener with targeted subscribeQuery (Phases 5+6)
HexaField Apr 29, 2026
7d2f758
fix: eliminate N+1 query patterns in PollCard and useCommunityService
HexaField Apr 29, 2026
e4d3bf6
feat: migrate kanban-view + table-view from Prolog to SHACL APIs (Pha…
HexaField Apr 29, 2026
ba306c1
chore: replace remaining addListener with subscribeQuery, remove dead…
HexaField Apr 29, 2026
8f2b8a5
feat: Phase 11 — remove usePerspectives link bus
HexaField Apr 29, 2026
1e599e8
ci: retrigger after AD4M hooks-helpers fix
HexaField Apr 29, 2026
6bac137
ci: override all AD4M hook packages in linked builds
HexaField Apr 29, 2026
8220753
debug: add CI diagnostic output to conversation tests
HexaField Apr 29, 2026
fa212d4
chore: remove CI debug logging from conversation tests
HexaField Apr 29, 2026
13550a3
fix: restore missing useRoute import in MainView.vue
HexaField Apr 29, 2026
ed365f3
fix: subscription type mismatch, local SDK linking, channel prefix st…
HexaField Apr 29, 2026
ba12ab5
fix(ui): use lit/directives instead of lit-html/directives for ifDefined
HexaField Apr 30, 2026
e913744
Merge branch 'dev' into feat/sparql-1.2-cleanup
HexaField May 7, 2026
460287c
fix: add eslint-disable for second require statement
HexaField May 7, 2026
b507d7b
ci: retrigger build
HexaField May 7, 2026
d735b80
fix(ci): pin pnpm for netlify ad4m-link build
HexaField May 7, 2026
2787c0d
fix(ci): fallback to published SDK when linked ad4m build fails
HexaField May 7, 2026
6c388b7
fix(ci): use published ad4m overrides in netlify fallback
HexaField May 7, 2026
7300d91
fix(ci): skip linked ad4m build on netlify deploy previews
HexaField May 7, 2026
22a990c
fix(ci): align with dev script and pin pnpm 9 for ad4m build
HexaField May 7, 2026
3a7c5c1
ci: force netlify redeploy
HexaField May 7, 2026
a3c05c5
fix(ci): add graceful fallback error handling for ad4m build
HexaField May 7, 2026
60a5d83
fix(ci): improve pnpm v9 pinning with multiple fallback methods
HexaField May 7, 2026
4864d52
ci: force netlify redeploy again
HexaField May 7, 2026
f0e2af6
fix(ci): refactor error handling for ad4m clone and build
HexaField May 7, 2026
54fe8a2
fix(ci): skip AD4M linking on Netlify deploy previews for stability
HexaField May 7, 2026
2d26004
fix(netlify): explicitly set pnpm v9.15.0 in Netlify environment
HexaField May 7, 2026
8479448
ci: trigger final check
HexaField May 7, 2026
e841d2f
fix(ci): skip AD4M linking on deploy previews due to pnpm v10 incompa…
HexaField May 7, 2026
d1113f3
fix(ci): check deploy preview mode BEFORE branch name resolution
HexaField May 7, 2026
e5dcce8
fix: repair build script for feat/sparql-1.2-cleanup deployment
HexaField May 8, 2026
a3c0044
fix: align package overrides with GitHub Actions workflows
HexaField May 8, 2026
3905d60
Ad4m version bump to 0.13.0-test-4
jhweir May 9, 2026
719a3a0
fix: add explicit through: 'ad4m://has_child' to all implicit HasMany…
jhweir May 9, 2026
d07a297
fix: bump flux-container ad4m deps to 0.13.0-test-4 to match workspac…
jhweir May 9, 2026
69482a0
fix: stop restoring origin/dev package.json on CI when no ad4m branch…
jhweir May 9, 2026
aecca96
chore: bump ad4m-connect to 0.13.0-test-5
jhweir May 11, 2026
b524573
chore: bump @coasys/ad4m-connect to 0.13.0-test-6
jhweir May 12, 2026
7a7b525
chore: bump ad4m and ad4m-connect to 0.13.0-test-7
jhweir May 12, 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
10 changes: 10 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ jobs:
pkg.pnpm.overrides = pkg.pnpm.overrides || {};
pkg.pnpm.overrides['@coasys/ad4m'] = 'file:./ad4m/core';
pkg.pnpm.overrides['@coasys/ad4m-connect'] = 'file:./ad4m/connect';
pkg.pnpm.overrides['@coasys/hooks-helpers'] = 'file:./ad4m/ad4m-hooks/helpers';
pkg.pnpm.overrides['@coasys/ad4m-react-hooks'] = 'file:./ad4m/ad4m-hooks/react';
pkg.pnpm.overrides['@coasys/ad4m-vue-hooks'] = 'file:./ad4m/ad4m-hooks/vue';
require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\n');
"

Expand All @@ -111,8 +114,15 @@ jobs:
rm -rf app/node_modules/.vite .turbo node_modules/.cache
find . -name '.turbo' -type d -not -path './ad4m/*' -not -path './node_modules/*' -exec rm -rf {} + 2>/dev/null || true

- name: Lint
run: pnpm lint

- name: Build
run: NODE_OPTIONS='--max-old-space-size=4096' pnpm build

- name: Type check (informational)
continue-on-error: true
run: pnpm typecheck

- name: Test
run: pnpm test --filter @coasys/flux-api
10 changes: 10 additions & 0 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,24 @@ jobs:
pkg.pnpm.overrides = pkg.pnpm.overrides || {};
pkg.pnpm.overrides['@coasys/ad4m'] = 'file:./ad4m/core';
pkg.pnpm.overrides['@coasys/ad4m-connect'] = 'file:./ad4m/connect';
pkg.pnpm.overrides['@coasys/hooks-helpers'] = 'file:./ad4m/ad4m-hooks/helpers';
pkg.pnpm.overrides['@coasys/ad4m-react-hooks'] = 'file:./ad4m/ad4m-hooks/react';
pkg.pnpm.overrides['@coasys/ad4m-vue-hooks'] = 'file:./ad4m/ad4m-hooks/vue';
require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\n');
"

- name: Install dependencies
run: pnpm install --no-frozen-lockfile

- name: Lint
run: pnpm lint

- name: Build
run: NODE_OPTIONS='--max-old-space-size=4096' pnpm build

- name: Type check (informational)
continue-on-error: true
run: pnpm typecheck

- name: Test
run: pnpm test --filter @coasys/flux-api
3 changes: 2 additions & 1 deletion app/.eslintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
../ad4m
../ad4m-types
vue.config.js
vue.config.js
src/views/signup/perlin.js
2 changes: 1 addition & 1 deletion app/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module.exports = {
env: {
node: true,
},
extends: ['plugin:vue/vue3-essential', 'eslint:recommended', '@vue/typescript/recommended', '@vue/prettier'],
extends: ['plugin:vue/vue3-essential', 'eslint:recommended', '@vue/typescript/recommended'],
parserOptions: {
ecmaVersion: 2020,
},
Expand Down
4 changes: 3 additions & 1 deletion app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"build": "NODE_OPTIONS='--max-old-space-size=4096' vite build",
"preview": "vite preview",
"lint": "eslint src/**/*.ts src/**/*.js src/**/*.vue",
"typecheck": "vue-tsc --noEmit",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
"test": "jest --env=jsdom"
},
"main": "background.js",
Expand Down Expand Up @@ -95,6 +96,7 @@
"vite-plugin-babel-compiler": "^0.3.0",
"vite-plugin-pwa": "^0.14.7",
"vite-plugin-worker": "^1.0.5",
"vue-devtools": "^5.1.4"
"vue-devtools": "^5.1.4",
"vue-tsc": "^3.2.7"
}
}
1 change: 1 addition & 0 deletions app/src/__tests__/audio-processor.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ let CapturedProcessor: any = null;
// Load the processor module — registerProcessor captures the class
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs');
// eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require('path');
const code = fs.readFileSync(
path.resolve(__dirname, '../../public/audio-processor.js'),
Expand Down
10 changes: 4 additions & 6 deletions app/src/components/conversation/timeline/TimelineBlock.vue
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@
:match-indexes="matchIndexes"
:set-match-indexes="setMatchIndexes"
:zoom="zoom"
:refresh-trigger="refreshTrigger"
:selected-topic-id="selectedTopicId"
:selected-item-id="selectedItemId"
:set-selected-item-id="setSelectedItemId"
Expand Down Expand Up @@ -197,7 +196,6 @@ interface Props {
matchIndexes?: MatchIndexes;
setMatchIndexes?: (indexes: MatchIndexes) => void;
zoom?: GroupingOption;
refreshTrigger?: number;
selectedItemId?: string;
setSelectedItemId?: (id: string | null) => void;
search?: (type: SearchType, itemId: string, topic?: SynergyTopic) => void;
Expand Down Expand Up @@ -411,9 +409,9 @@ function onGroupClick() {
}
}

// Get stats on first load and whenever refresh triggered if last child
// Get stats on first load and whenever data changes if last child
watch(
() => props.refreshTrigger,
() => props.data,
() => {
if (firstLoad.value || props.lastChild) {
firstLoad.value = false;
Expand All @@ -424,9 +422,9 @@ watch(
{ immediate: true },
);

// Get data when expanding children or refresh triggered & children expanded
// Get data when expanding children or data changes while children expanded
watch(
[() => showChildren.value, () => props.refreshTrigger],
[() => showChildren.value, () => props.data],
() => {
// False on first load. Updated when zoom useEffect below fires and later when children are expanded by user
if (showChildren.value) {
Expand Down
Loading
Loading