i-self 0.4.3

Personal developer-companion CLI: scans your repos, indexes code semantically, watches your activity, and moves AI-agent sessions between tools (Claude Code, Aider, Goose, OpenAI Codex CLI, Continue.dev, OpenCode).
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>i-self Dashboard</title>
    <link rel="stylesheet" href="/static/style.css">
</head>
<body>
    <div class="container">
        <header>
            <h1>🧠 i-self Dashboard</h1>
            <p>Your Digital Developer Twin</p>
        </header>

        <nav class="tabs">
            <button class="tab-btn active" data-tab="overview">Overview</button>
            <button class="tab-btn" data-tab="search">Semantic Search</button>
            <button class="tab-btn" data-tab="ai">AI Assistant</button>
            <button class="tab-btn" data-tab="team">Team</button>
        </nav>

        <main>
            <!-- Overview Tab -->
            <section id="overview" class="tab-content active">
                <div class="stats-grid">
                    <div class="stat-card">
                        <h3>Profile Status</h3>
                        <div id="profile-status">Loading...</div>
                    </div>
                    <div class="stat-card">
                        <h3>Repositories</h3>
                        <div id="repo-count">-</div>
                    </div>
                    <div class="stat-card">
                        <h3>Languages</h3>
                        <div id="language-count">-</div>
                    </div>
                    <div class="stat-card">
                        <h3>Code Embeddings</h3>
                        <div id="embedding-count">-</div>
                    </div>
                    <div class="stat-card">
                        <h3>Embedder</h3>
                        <div id="embedder-id">-</div>
                        <div id="embedder-degraded-banner" style="display:none; margin-top:.4rem; font-size:.8rem; color:#e8a547;">
                            ⚠️ Degraded mode — set <code>OPENAI_API_KEY</code> for real embeddings.
                        </div>
                    </div>
                </div>

                <div class="section">
                    <h2>Primary Languages</h2>
                    <div id="languages-chart" class="chart-container"></div>
                </div>
            </section>

            <!-- Search Tab -->
            <section id="search" class="tab-content">
                <div class="search-box">
                    <input type="text" id="search-input" placeholder="Search your code semantically... (e.g., 'authentication middleware')">
                    <button id="search-btn">Search</button>
                </div>
                
                <div class="filters">
                    <select id="language-filter">
                        <option value="">All Languages</option>
                        <option value="Rust">Rust</option>
                        <option value="Python">Python</option>
                        <option value="JavaScript">JavaScript</option>
                        <option value="TypeScript">TypeScript</option>
                        <option value="Go">Go</option>
                    </select>
                </div>

                <div id="search-results" class="results-container"></div>
            </section>

            <!-- AI Assistant Tab -->
            <section id="ai" class="tab-content">
                <div class="chat-container">
                    <div id="chat-messages" class="chat-messages">
                        <div class="message system">
                            <p>Hello! I'm your AI assistant powered by your i-self profile. Ask me anything about your code, patterns, or development style.</p>
                        </div>
                    </div>
                    
                    <div class="chat-input">
                        <input type="text" id="ai-input" placeholder="Ask about your code...">
                        <button id="ai-send">Send</button>
                    </div>
                </div>

                <div class="quick-actions">
                    <h3>Quick Actions</h3>
                    <button class="action-btn" data-action="explain">Explain my code style</button>
                    <button class="action-btn" data-action="patterns">Show my patterns</button>
                    <button class="action-btn" data-action="improve">Suggest improvements</button>
                    <button class="action-btn" data-action="generate">Generate code</button>
                </div>
            </section>

            <!-- Team Tab -->
            <section id="team" class="tab-content">
                <div class="team-selector">
                    <select id="team-select">
                        <option value="">Select a team...</option>
                    </select>
                    <button id="load-team">Load Team</button>
                </div>

                <div id="team-content" class="hidden">
                    <div class="stats-grid">
                        <div class="stat-card">
                            <h3>Team Members</h3>
                            <div id="team-member-count">-</div>
                        </div>
                        <div class="stat-card">
                            <h3>Skill Coverage</h3>
                            <div id="skill-coverage">-</div>
                        </div>
                        <div class="stat-card">
                            <h3>Knowledge Silos</h3>
                            <div id="knowledge-silos">-</div>
                        </div>
                    </div>

                    <div class="section">
                        <h2>Recommendations</h2>
                        <div id="team-recommendations"></div>
                    </div>
                </div>
            </section>
        </main>

        <footer>
            <p>i-self - Your Digital Developer Twin</p>
        </footer>
    </div>

    <script src="/static/app.js"></script>
</body>
</html>