Something went wrong. Try again.
unified development activity
Something went wrong. Try again.
14 kB · 276 lines
HTML
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277<!doctype html><html lang="en" data-theme="dark"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="color-scheme" content="dark light"> <title>commit activity</title> <meta name="description" content="{{description}}"> <meta name="author" content="@permadeath.com"> <meta name="theme-color" content="#ff0000"> <link rel="canonical" href="{{url}}"> <link rel="me" href="https://bsky.app/profile/permadeath.com"> <link rel="me" href="https://tangled.org/permadeath.com"> <link rel="icon" href="icon.svg" type="image/svg+xml"> <link rel="icon" href="favicon.ico" sizes="32x32"> <link rel="apple-touch-icon" href="apple-touch-icon.png"> <meta property="og:type" content="website"> <meta property="og:site_name" content="dev.permadeath.com"> <meta property="og:url" content="{{url}}"> <meta property="og:title" content="dev.permadeath.com"> <meta property="og:description" content="{{description}}"> <meta property="og:image" content="{{image}}"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta property="og:image:alt" content="{{image_alt}}"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="dev.permadeath.com"> <meta name="twitter:description" content="{{description}}"> <meta name="twitter:image" content="{{image}}"> <meta name="twitter:image:alt" content="{{image_alt}}"> <link rel="stylesheet" href="style.css"></head><body> <div class="page"> <header class="site-header"> <div> <p class="eyebrow"><span class="live-dot" aria-hidden="true"></span> dev.permadeath.com</p> <h1 id="title">commit activity</h1> <p class="asof" id="asof">loading…</p> </div> <div class="header-controls"> <div class="segmented period-picker" id="period" role="group" aria-label="Period for every card"></div> <button id="theme" class="ghost icon-button" type="button" aria-label="Toggle colour theme" title="Toggle colour theme"> <span aria-hidden="true">◐</span> </button> </div> </header>
<main> <section class="card matrix-card" aria-labelledby="matrix-title"> <div class="matrix-layout"> <div class="matrix-main"> <div class="matrix-head"> <div> <p class="eyebrow period-fixed" title="A fixed year; the period pickers don't change it">fixed · last 365 days</p> <h2 id="matrix-title">activity</h2> </div> <div class="matrix-total"> <p class="matrix-total-value" id="matrix-total">—</p> <p class="label">commits</p> </div> </div> <div class="matrix-scroll"> <svg id="matrix" role="group" aria-labelledby="matrix-title"></svg> </div> <div class="matrix-spark" id="matrix-spark" hidden> <div class="spark-head"> <span class="label">daily</span> <span class="spark-key"><span class="spark-line daily"></span>day</span> <span class="spark-key"><span class="spark-line average"></span>7d</span> </div> <svg id="spark" viewBox="0 0 1000 72" role="img" aria-label="Daily commits with a seven-day average"></svg> </div> <div class="tooltip matrix-tooltip" id="matrix-tooltip" hidden></div> <div class="matrix-foot"> <dl class="stat-row" id="matrix-stats" aria-label="Activity stats"></dl> <ul class="legend matrix-legend" id="matrix-legend" aria-label="Commit matrix scale"></ul> <p class="sub matrix-note" id="matrix-note">UTC</p> </div> <section class="day-panel" id="day-panel" aria-labelledby="day-title" tabindex="-1" hidden> <div class="day-head"> <div> <p class="eyebrow accent">day · utc</p> <h2 id="day-title">—</h2> <p class="sub" id="day-status" role="status"></p> </div> <button id="day-close" class="ghost icon-button" type="button" aria-label="Close day" title="Close (Esc)"> <span aria-hidden="true">×</span> </button> </div> <ol class="day-list" id="day-list"></ol> </section> </div> <aside class="matrix-side" aria-labelledby="projects-title"> <div class="side-head"> <h2 id="projects-title">projects</h2> <div class="controls"> <div class="segmented period-picker" role="group" aria-label="Period"></div> </div> </div> <ol class="project-ranking" id="project-ranking"></ol> <a class="side-link" href="#repos-title">all repositories ↓</a> </aside> </div> </section>
<div class="two-col chart-pair"> <section class="card chart-card when-card" aria-labelledby="daily-title"> <div class="card-head"> <div> <h2 id="daily-title">commits by date and time</h2> <p class="sub" id="chart-sub">by UTC day, and by hour</p> </div> <div class="controls"> <div class="segmented breakdown-picker" role="group" aria-label="Stack by"> <button type="button" data-by="project">project</button> <button type="button" data-by="identity">identity</button> </div> <div class="segmented period-picker" role="group" aria-label="Period"></div> <button id="table-toggle" class="ghost" type="button" aria-expanded="false" aria-controls="wheel-table table-view">Table</button> </div> </div> <ul class="legend" id="legend" aria-label="Series"></ul> <div class="when-body"> <div class="when-time"> <p class="label when-label" id="wheel-title">by hour · <span id="wheel-sub">—</span></p> <div class="wheel-layout"> <div class="chart-wrap wheel-wrap"> <svg id="wheel" viewBox="0 0 440 440" role="img" aria-labelledby="wheel-title"></svg> <div class="tooltip" id="wheel-tooltip" hidden></div> </div> <dl class="stat-row wheel-stats" id="wheel-stats" aria-label="Commits by time stats"></dl> </div> <div class="table-view" id="wheel-table" hidden></div> </div> <div class="when-date"> <div class="chart-wrap"> <svg id="chart" viewBox="0 0 600 320" role="img" aria-labelledby="daily-title chart-sub"></svg> <div class="tooltip" id="tooltip" hidden></div> </div> <div class="table-view" id="table-view" hidden></div> </div> </div> </section> <section class="card activity-card" id="activity" aria-labelledby="activity-title" hidden> <div class="card-head"> <div> <h2 id="activity-title">agentic activity</h2> <p class="sub" id="activity-sub">—</p> </div> <div class="controls"> <p class="activity-live" id="activity-live"><span class="live-dot" aria-hidden="true"></span><span id="activity-updated">live</span></p> </div> </div> <div class="activity-frame"> <ol class="activity-list" id="activity-list" aria-live="polite" aria-labelledby="activity-title"></ol> </div> <p class="sub activity-source">via <a id="activity-source" href="https://vibescrobble.com">vibescrobble</a></p> </section> </div>
<section class="card chart-card timelines-card" aria-labelledby="timelines-title" hidden> <div class="card-head"> <div> <h2 id="timelines-title">project timelines</h2> <p class="sub" id="timelines-sub">commits per day, smoothed, √ scale · busiest projects by first commit</p> </div> <div class="controls"> <div class="segmented period-picker" role="group" aria-label="Period"></div> <button id="timelines-table-toggle" class="ghost" type="button" aria-expanded="false" aria-controls="timelines-table">Table</button> </div> </div> <div class="chart-wrap timelines-wrap"> <div class="timelines" id="timelines" role="list" aria-labelledby="timelines-title timelines-sub"></div> <div class="timelines-cursor" id="timelines-cursor" hidden></div> <div class="tooltip" id="timelines-tooltip" hidden></div> </div> <div class="table-view" id="timelines-table" hidden></div> </section>
<section class="card chart-card types-card half" aria-labelledby="types-title" hidden> <div class="card-head"> <div> <h2 id="types-title">commit types</h2> <p class="sub" id="types-sub">conventional commits · share of each week</p> </div> <div class="controls"> <div class="segmented period-picker" role="group" aria-label="Period"></div> <button id="types-table-toggle" class="ghost" type="button" aria-expanded="false" aria-controls="types-table">Table</button> </div> </div> <ul class="legend" id="types-legend" aria-label="Commit types"></ul> <div class="chart-wrap types-wrap"> <svg id="types" viewBox="0 0 560 300" role="img" aria-labelledby="types-title types-sub"></svg> <div class="tooltip" id="types-tooltip" hidden></div> </div> <p class="sub types-note" id="types-note"></p> <div class="table-view" id="types-table" hidden></div> </section>
<section class="card chart-card gap-card half" aria-labelledby="gap-title" hidden> <div class="card-head"> <div> <h2 id="gap-title">written to landed</h2> <p class="sub" id="gap-sub">author date → commit date, log scale · every tangled change by the day it was written</p> </div> <div class="controls"> <div class="segmented period-picker" role="group" aria-label="Period"></div> </div> </div> <div class="gap-layout"> <div class="chart-wrap gap-wrap"> <svg id="gap" viewBox="0 0 560 360" role="img" aria-labelledby="gap-title gap-sub"></svg> <div class="tooltip" id="gap-tooltip" hidden></div> </div> <dl class="stat-row gap-stats" id="gap-stats" aria-label="Written to landed stats"></dl> </div> </section>
<section class="hero" aria-labelledby="share-label"> <div class="share-card"> <div class="share-head"> <p class="label" id="share-label">tangled</p> <div class="share-periods period-picker" id="share-periods" role="group" aria-label="Period"> <button type="button" data-period="30d">30d</button> <button type="button" data-period="90d">90d</button> <button type="button" data-period="1y">1y</button> <button type="button" data-period="all">all</button> </div> </div> <p class="share-value" id="share-value">—</p> <div class="meter" id="share-meter" role="img" aria-labelledby="share-label share-sub"> <div class="meter-track"></div> <div class="meter-fill" id="share-fill"></div> </div> <div class="share-trend" id="share-trend" hidden> <svg id="share-spark" viewBox="0 0 400 40" preserveAspectRatio="none" role="img" aria-label="Share over the trailing 30 days, by day"></svg> <span class="share-trend-label">trailing 30d, daily</span> <div class="tooltip" id="share-tooltip" hidden></div> </div> <p class="sub" id="share-sub"></p> </div> <div class="totals"> <p class="label" id="totals-label">commits</p> <dl class="stat-row totals-list" id="kpis" aria-labelledby="totals-label"></dl> </div> </section>
<section class="card half" aria-labelledby="repos-title"> <p class="eyebrow period-fixed" title="All time; the period pickers don't change it">fixed · all time</p> <h2 id="repos-title">repositories</h2> <div id="repos"></div> </section>
<section class="card half" aria-labelledby="recent-title"> <h2 id="recent-title">recent</h2> <ol class="recent" id="recent"></ol> </section>
<section class="card status" aria-labelledby="status-title"> <h2 id="status-title">index</h2> <div id="status"></div> <details class="method"> <summary>method</summary> <p id="methodology"></p> <p class="sub">prior: <span id="prior-claim"></span>.</p> </details> </section>
<noscript><p class="notice">This dashboard needs JavaScript to draw the matrix and chart. The raw data is in <a href="data/summary.json">summary.json</a> and <a href="data/site.json">site.json</a>.</p></noscript> </main> </div> <script src="app.js"></script></body></html>