[Hackathon] feat: Project Gallery Redesign + Collaboration Suite#5100
Open
EmilySun621 wants to merge 5 commits into
Open
[Hackathon] feat: Project Gallery Redesign + Collaboration Suite#5100EmilySun621 wants to merge 5 commits into
EmilySun621 wants to merge 5 commits into
Conversation
This bundles the feature work that built up on this branch:
- Custom agents: dashboard CRUD page and editor dialog (48px icon tile,
chip-style guardrails, model selector). Each custom agent now carries a
LiteLLM model_name (Opus 4.7 / Haiku 4.5) that is passed through to the
agent-service so different agents can use different models.
- Conversation history is scoped per (workflowId, agentId): switching
agent or workflow yields a different conversation list. localStorage
key: texera.workflowConversations.v1.{workflowId}.{agentId}.
- Time machine: workflow snapshot list, revert, and agent-tagged
checkpoints. New workflow-history-tool in agent-service backs the
"undo my last change" flow; amber gains a WorkflowSnapshotResource;
sql/updates/23.sql adds the snapshot table.
- Operator-aware custom-agent prompts: the system prompt now injects the
full operator catalog with a "prefer built-in operators over Python
UDFs" rule, sourced from WorkflowSystemMetadata at request time.
- LiteLLM: added the claude-opus-4.7 entry alongside claude-haiku-4.5
and gpt-5-mini in bin/litellm-config.yaml.
- Agent panel rewritten around the (conversation list / chat) two-view
model with subscription-managed list reloads and per-step persistence.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…detail Replaces the utilitarian Projects list with a card-based gallery that surfaces icon + name + description + stats (📄 workflows · 📊 datasets · 👥 members) + relative-time updated. Adds a dedicated Create/Edit Project modal with emoji icon picker and preset color swatches, and rewrites the project detail page as a tabbed view (Workflows / Datasets / Members) — Workflows tab reuses the existing saved-workflow-section, Members tab renders ShareAccessComponent inline (component now accepts @input bindings as a fallback to NZ_MODAL_DATA), Datasets tab shows a "Coming soon" placeholder. Workflow list items now badge their project memberships (emoji + name chip) regardless of whether the project has a custom color. Per-project emoji icons are stored in localStorage (no DB migration required for hackathon scope). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ence
Builds the UI on top of the existing CollaborationService scaffold. Adds a
slide-in panel on the right of the workspace with three tabs:
• Chat — Yjs-synced team chat for the current workflow, Enter-to-send
• Comments — per-operator threaded comments with resolve / reopen and
inline reply composer. Right-click an operator → "add comment" opens
a yellow new-thread composer at the top of that operator's section.
• Online — presence list derived from Yjs awareness, idle status,
"you" tag, and per-user current-edit hints.
The menu bar gets a team-icon toggle button with an nz-badge counting
unresolved comment threads across the workflow. The context menu on
single-operator selection gains an "add comment" item that opens the
panel pre-targeted at the clicked operator (uses a new
startNewThreadForOperator action on CollaborationService).
CollaborationService gains a draftThreadOperatorId stream so the panel
can surface a draft composer for operators with zero existing threads;
the service casts the readonly WorkflowGraph to access sharedModel /
newYDocLoadedSubject from the existing real-time edit infrastructure.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Project Gallery polish on top of the earlier card redesign:
• Workflows tab in project detail now fetches via the dedicated
/api/project/:pid/workflows endpoint and renders a clean card list,
bypassing the generic search index which silently dropped project-
filtered queries. Cards expose Open + Remove-from-project actions and
the project's accessLevel as a badge. "Create Workflow" creates an
empty workflow, adds it to the project, and routes to the editor.
• Datasets tab fully wired: localStorage-backed pid→dids overlay (no DB
migration), card grid with size/owner/visibility, popconfirm remove,
and a dedicated Add-Existing-Dataset modal that filters out datasets
already in the project.
• Members tab replaced the dual-card ShareAccessComponent UI with a
dedicated ProjectMembersComponent: single-row invite (email + Editor/
Viewer dropdown + Invite button) on top, member cards below with
deterministic-color avatar, role badge, inline role dropdown, and
popconfirm remove.
• Add-Workflows and Add-Datasets modals rebuilt as searchable card lists
with select-all, hover/selected states, primary "Add Selected" button
with a white count pill, consistent 10px-row / 12px-gap styling.
• Sidebar Projects link unconditional — *ngIf removed, projects_enabled
default flipped to true, loadTabs() skips it so admin config can't
flip it back.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
😤 The Problem
A lab of 5 people, all using Texera. Their workspace looks like this:
No organization. No communication. We fixed both.
✨ What We Built
🗂️ 1. Project Gallery — Organize Everything
Texera had a basic project feature, but it was hidden and bare-bones. We rebuilt it into a first-class experience.
Project List Page
📄 N workflows · 📊 N datasets · 👥 N memberson every cardProject Detail Page — 3 Tabs
Workflow Badges
On the main Workflows page, each workflow now shows colored project chips with emoji — see at a glance which project it belongs to.
💬 2. Collaboration Suite — Talk Where You Work
A new Collaboration panel in the workflow editor with three tabs:
🗣️ Team Chat
📝 Operator Comments
🟢 Online Presence
🎬 Demo Walkthrough
🏗️ Architecture
📊 +8,257 / -1,450 lines across 84 files · 🔒 Zero modifications to Texera's core engine
✅ Testing
💡 Why This Matters
Texera already had real-time collaborative editing. What it didn't have was everything around that — organizing work into projects, talking about what you're building, and commenting on specific parts of a workflow.