Files
hive/frontend/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js
anthonyrawlins 85bf1341f3 Add comprehensive frontend UI and distributed infrastructure
Frontend Enhancements:
- Complete React TypeScript frontend with modern UI components
- Distributed workflows management interface with real-time updates
- Socket.IO integration for live agent status monitoring
- Agent management dashboard with cluster visualization
- Project management interface with metrics and task tracking
- Responsive design with proper error handling and loading states

Backend Infrastructure:
- Distributed coordinator for multi-agent workflow orchestration
- Cluster management API with comprehensive agent operations
- Enhanced database models for agents and projects
- Project service for filesystem-based project discovery
- Performance monitoring and metrics collection
- Comprehensive API documentation and error handling

Documentation:
- Complete distributed development guide (README_DISTRIBUTED.md)
- Comprehensive development report with architecture insights
- System configuration templates and deployment guides

The platform now provides a complete web interface for managing the distributed AI cluster
with real-time monitoring, workflow orchestration, and agent coordination capabilities.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-10 08:41:59 +10:00

55 lines
1.8 KiB
JavaScript

"use client";
// src/HydrationBoundary.tsx
import * as React from "react";
import { hydrate } from "@tanstack/query-core";
import { useQueryClient } from "./QueryClientProvider.js";
var HydrationBoundary = ({
children,
options = {},
state,
queryClient
}) => {
const client = useQueryClient(queryClient);
const optionsRef = React.useRef(options);
optionsRef.current = options;
const hydrationQueue = React.useMemo(() => {
if (state) {
if (typeof state !== "object") {
return;
}
const queryCache = client.getQueryCache();
const queries = state.queries || [];
const newQueries = [];
const existingQueries = [];
for (const dehydratedQuery of queries) {
const existingQuery = queryCache.get(dehydratedQuery.queryHash);
if (!existingQuery) {
newQueries.push(dehydratedQuery);
} else {
const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > existingQuery.state.dataUpdatedAt || dehydratedQuery.promise && existingQuery.state.status !== "pending" && existingQuery.state.fetchStatus !== "fetching" && dehydratedQuery.dehydratedAt !== void 0 && dehydratedQuery.dehydratedAt > existingQuery.state.dataUpdatedAt;
if (hydrationIsNewer) {
existingQueries.push(dehydratedQuery);
}
}
}
if (newQueries.length > 0) {
hydrate(client, { queries: newQueries }, optionsRef.current);
}
if (existingQueries.length > 0) {
return existingQueries;
}
}
return void 0;
}, [client, state]);
React.useEffect(() => {
if (hydrationQueue) {
hydrate(client, { queries: hydrationQueue }, optionsRef.current);
}
}, [client, hydrationQueue]);
return children;
};
export {
HydrationBoundary
};
//# sourceMappingURL=HydrationBoundary.js.map