Add features & update project
Build and Push Spoon Images / quality (push) Successful in 1m41s
Build and Push Spoon Images / build-images (push) Successful in 7m4s

This commit is contained in:
Gabriel Brown
2026-06-23 02:06:58 -04:00
parent fe72fc2957
commit d207b8b0b8
26 changed files with 1257 additions and 231 deletions
+58
View File
@@ -87,6 +87,64 @@ export const listMine = query({
},
});
export const listMineWithState = query({
args: {},
handler: async (ctx) => {
const ownerId = await getRequiredUserId(ctx);
const spoons = (
await ctx.db
.query('spoons')
.withIndex('by_owner', (q) => q.eq('ownerId', ownerId))
.order('desc')
.collect()
).filter((spoon) => spoon.status !== 'archived');
return await Promise.all(
spoons.map(async (spoon) => {
const [state, ignoredChanges, threads] = await Promise.all([
ctx.db
.query('spoonRepositoryStates')
.withIndex('by_spoon', (q) => q.eq('spoonId', spoon._id))
.first(),
ctx.db
.query('ignoredUpstreamChanges')
.withIndex('by_spoon', (q) => q.eq('spoonId', spoon._id))
.collect(),
ctx.db
.query('threads')
.withIndex('by_spoon', (q) => q.eq('spoonId', spoon._id))
.order('desc')
.collect(),
]);
const ignoredShas = new Set(
ignoredChanges.flatMap((change) => change.commitShas),
);
const rawUpstreamAheadBy =
state?.upstreamAheadBy ?? spoon.upstreamAheadBy ?? 0;
const effectiveUpstreamAheadBy = Math.max(
0,
rawUpstreamAheadBy - ignoredShas.size,
);
const openThreads = threads.filter(
(thread) =>
!['resolved', 'ignored', 'failed', 'cancelled'].includes(
thread.status,
),
);
return {
...spoon,
rawUpstreamAheadBy,
effectiveUpstreamAheadBy,
ignoredUpstreamCount: ignoredShas.size,
forkAheadBy: state?.forkAheadBy ?? spoon.forkAheadBy ?? 0,
openThreadCount: openThreads.length,
latestThreadStatus: threads[0]?.status,
};
}),
);
},
});
export const get = query({
args: { spoonId: v.id('spoons') },
handler: async (ctx, { spoonId }) => {