Major WHOOSH system refactoring and feature enhancements

- Migrated from HIVE branding to WHOOSH across all components
- Enhanced backend API with new services: AI models, BZZZ integration, templates, members
- Added comprehensive testing suite with security, performance, and integration tests
- Improved frontend with new components for project setup, AI models, and team management
- Updated MCP server implementation with WHOOSH-specific tools and resources
- Enhanced deployment configurations with production-ready Docker setups
- Added comprehensive documentation and setup guides
- Implemented age encryption service and UCXL integration

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
anthonyrawlins
2025-08-27 08:34:48 +10:00
parent 0e9844ef13
commit 268214d971
399 changed files with 57390 additions and 2045 deletions

View File

@@ -65,8 +65,8 @@ export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
useEffect(() => {
const initializeAuth = async () => {
try {
const storedTokens = localStorage.getItem('hive_tokens');
const storedUser = localStorage.getItem('hive_user');
const storedTokens = localStorage.getItem('whoosh_tokens');
const storedUser = localStorage.getItem('whoosh_user');
if (storedTokens && storedUser) {
const parsedTokens: AuthTokens = JSON.parse(storedTokens);
@@ -132,8 +132,8 @@ export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
setTokens(newTokens);
setUser(data.user);
localStorage.setItem('hive_tokens', JSON.stringify(newTokens));
localStorage.setItem('hive_user', JSON.stringify(data.user));
localStorage.setItem('whoosh_tokens', JSON.stringify(newTokens));
localStorage.setItem('whoosh_user', JSON.stringify(data.user));
localStorage.setItem('token', newTokens.access_token);
return true;
@@ -174,8 +174,8 @@ export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
setUser(data.user);
// Store in localStorage
localStorage.setItem('hive_tokens', JSON.stringify(newTokens));
localStorage.setItem('hive_user', JSON.stringify(data.user));
localStorage.setItem('whoosh_tokens', JSON.stringify(newTokens));
localStorage.setItem('whoosh_user', JSON.stringify(data.user));
localStorage.setItem('token', newTokens.access_token);
} catch (error: any) {
@@ -210,8 +210,8 @@ export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
setUser(data.user);
// Store in localStorage
localStorage.setItem('hive_tokens', JSON.stringify(newTokens));
localStorage.setItem('hive_user', JSON.stringify(data.user));
localStorage.setItem('whoosh_tokens', JSON.stringify(newTokens));
localStorage.setItem('whoosh_user', JSON.stringify(data.user));
localStorage.setItem('token', newTokens.access_token);
} catch (error) {
console.error('Registration failed:', error);
@@ -249,15 +249,15 @@ export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
if (user) {
const updatedUser = { ...user, ...userData };
setUser(updatedUser);
localStorage.setItem('hive_user', JSON.stringify(updatedUser));
localStorage.setItem('whoosh_user', JSON.stringify(updatedUser));
}
};
const clearAuthData = (): void => {
setUser(null);
setTokens(null);
localStorage.removeItem('hive_tokens');
localStorage.removeItem('hive_user');
localStorage.removeItem('whoosh_tokens');
localStorage.removeItem('whoosh_user');
localStorage.removeItem('token');
};

View File

@@ -22,7 +22,7 @@ interface SocketIOProviderProps {
export const SocketIOProvider: React.FC<SocketIOProviderProps> = ({
children,
url = import.meta.env.VITE_WS_BASE_URL || 'https://hive.home.deepblack.cloud'
url = import.meta.env.VITE_WS_BASE_URL || 'https://whoosh.home.deepblack.cloud'
}) => {
// Allow disabling SocketIO completely via environment variable
const socketIODisabled = import.meta.env.VITE_DISABLE_SOCKETIO === 'true';
@@ -75,7 +75,7 @@ export const SocketIOProvider: React.FC<SocketIOProviderProps> = ({
}
},
onConnect: () => {
console.log('✅ Socket.IO connected to Hive backend');
console.log('✅ Socket.IO connected to WHOOSH backend');
// Join general room and subscribe to common events
if (socket) {
@@ -87,7 +87,7 @@ export const SocketIOProvider: React.FC<SocketIOProviderProps> = ({
}
},
onDisconnect: () => {
console.log('🔌 Socket.IO disconnected from Hive backend');
console.log('🔌 Socket.IO disconnected from WHOOSH backend');
},
onError: (error) => {
// Errors are already logged in the hook, don't duplicate

View File

@@ -27,8 +27,8 @@ export const ThemeProvider: React.FC<ThemeProviderProps> = ({ children }) => {
if (saved !== null) {
return JSON.parse(saved);
}
// Default to system preference
return window.matchMedia('(prefers-color-scheme: dark)').matches;
// Default to dark mode as requested by user
return true;
});
useEffect(() => {

View File

@@ -19,7 +19,7 @@ interface WebSocketProviderProps {
export const WebSocketProvider: React.FC<WebSocketProviderProps> = ({
children,
url = import.meta.env.VITE_WS_BASE_URL || 'wss://hive.home.deepblack.cloud'
url = import.meta.env.VITE_WS_BASE_URL || 'wss://whoosh.home.deepblack.cloud'
}) => {
const [subscriptions, setSubscriptions] = useState<Map<string, Set<(data: any) => void>>>(new Map());
@@ -47,14 +47,14 @@ export const WebSocketProvider: React.FC<WebSocketProviderProps> = ({
}
},
onConnect: () => {
console.log('WebSocket connected to Hive backend');
console.log('WebSocket connected to WHOOSH backend');
// Subscribe to general system events
sendMessage('subscribe', {
events: ['agent_status_changed', 'execution_started', 'execution_completed', 'metrics_updated']
});
},
onDisconnect: () => {
console.log('WebSocket disconnected from Hive backend');
console.log('WebSocket disconnected from WHOOSH backend');
},
onError: (error) => {
console.error('WebSocket error:', error);