BREAKING: All nodes must upgrade together. Legacy p2ns.core-request string messages are rejected; invite/consensus control plane uses protomux-rpc (invite.request, invite.ack, invite.relay*, consensus.*). Shared Corestore namespaces are the default for plugin DBs and drives; USE_SHARED_CORESTORE_NAMESPACES=false is debug-only. Admin plugin actions with params are validated before run. EXPERIMENTAL: End-to-end RPC invite path reuses existing handlers via adapters; invite wire still ships on the invite channel. Multi-peer invite/relay integration tests are not in CI yet (core-rpc-smoke only). SDK & channels: - channel-rpc.js, sdk.channels.rpc (register/request/event) - core-rpc.js for p2ns.core; action-params + plugin route validation - sdk.db.getCore/reopen, sdk.state.getPeerChannelSnapshot, sdk.metrics.getHolepunchStats (schema v1) Runtime: - p2ns.js: RPC-first core invite/consensus; Hyperswarm firewall/reconnect - channel-manager: required protomux-rpc per peer - db-shared-namespace-migration; drive-manager shared namespaces - proxy-server: invite.request RPC for joiners Plugins: file.drop, global.profile, peer.directory, domain.consensus, peer.visualize, example.plugin (RPC demo); peer.directory UI polish Also: CI/smoke scripts, diagnostics hardening, plugin config schema validation, admin action param modal, docs/RFCS, package-lock + engines.node >= 18
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
|
module.exports = {
|
|
content: [
|
|
'./includes/admin/admin-frontend/index.html',
|
|
'./includes/admin/admin-frontend/**/*.js',
|
|
'./includes/admin/**/*.js',
|
|
'./plugin-sites/**/*.html',
|
|
'./plugin-sites/**/*.js',
|
|
'./includes/networking/p2p_domains_proxy.js',
|
|
],
|
|
darkMode: 'class',
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
primary: '#6366f1',
|
|
'primary-dark': '#4f46e5',
|
|
'primary-light': '#818cf8',
|
|
'primary-hover': '#4f46e5',
|
|
secondary: '#8b5cf6',
|
|
accent: '#ec4899',
|
|
success: '#10b981',
|
|
error: '#ef4444',
|
|
warning: '#f59e0b',
|
|
'bg-primary': '#0f172a',
|
|
'bg-secondary': '#1e293b',
|
|
'bg-tertiary': '#334155',
|
|
'bg-glass': 'rgba(255, 255, 255, 0.05)',
|
|
'bg-glass-hover': 'rgba(255, 255, 255, 0.1)',
|
|
'text-primary': '#f1f5f9',
|
|
'text-secondary': '#cbd5e1',
|
|
'text-tertiary': '#94a3b8',
|
|
'text-muted': '#64748b',
|
|
'border-color': 'rgba(255, 255, 255, 0.1)'
|
|
}
|
|
}
|
|
},
|
|
plugins: [],
|
|
}
|
|
|