feat: Mongo-backed Pods with full CRUD + member management
Pods are persisted in MongoDB and CRUD'd via /api/pods (list/create/get/ update/delete + add/remove member). Shared Pod reshaped to a persisted entity (members: string[], description, timestamps) + PodInput. Backend seeds Demo/ Frontend/Backend Pods on first run (Squad -> Pod rename). Frontend replaces hardcoded teams with live data: PodCard (member chips add/remove, inline edit, delete, join) + CreatePodForm; App fetches+mutates via API. Removes teams.ts/ TeamCard; gitignores test artifacts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
export type { Pod, Engineer } from './pod.js';
|
||||
export type { Pod, PodInput, Engineer } from './pod.js';
|
||||
export type { EngineerContext } from './engineer.js';
|
||||
export type { Collision, CollisionSeverity, GithubStateSnapshot } from './collision.js';
|
||||
export type {
|
||||
|
||||
+17
-2
@@ -1,11 +1,26 @@
|
||||
/** A pod is one room of engineers working together (one LiveKit room per pod). */
|
||||
/**
|
||||
* A pod is one room of engineers working together (one LiveKit room per pod).
|
||||
* Persisted in MongoDB; CRUD'd via /api/pods.
|
||||
*/
|
||||
export interface Pod {
|
||||
/** URL-safe slug, e.g. "frontend-pod". Stable id used everywhere. */
|
||||
id: string;
|
||||
name: string;
|
||||
/** GitHub repo the pod is working in, as "owner/name". */
|
||||
repo: string;
|
||||
members: Engineer[];
|
||||
description?: string;
|
||||
/** Engineer display names PodMan uses when it speaks. */
|
||||
members: string[];
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
/** Fields accepted when creating or updating a pod. */
|
||||
export interface PodInput {
|
||||
name?: string;
|
||||
repo?: string;
|
||||
description?: string;
|
||||
members?: string[];
|
||||
}
|
||||
|
||||
export interface Engineer {
|
||||
|
||||
Reference in New Issue
Block a user