Project / Changelog
Changelog // 189 commits
Every commit, newest first. Each one passed all 15 quality gates before it was pushed.
Clepso was called Pulse until 18 Oct 2026. Older commits keep the name they were written with.
Latest increment · 24a1d6d
2.1–2.3: limit alerts at 80, 95 and 100%, reset expected and ready again
Passed every gate:
toolchain pinnedstrict build (warnings=errors)testshelper links no networkingrelease build has no debug codenetworking only in Syncclock injecteddesign tokens onlymotion through tokenskeyboard reachableredaction auditsecret scanno committed accounts projectemail templatesapp bundle
- Merge fix/Merge fix/perf-flake: paired perf rounds; helper sends a frame however long it took to build
6d2bebc - HelperHelper: send a frame however long it took to build
415ff9e - make perfmake perf: paired rounds, honest frame-delivery check
e64048c - ReleaseRelease: scripted Developer ID build up to notarisation, v0.1 feature gate, release notes
fd3a0a7 - SiteSite: rebuild at f66a9bf (decision sheet work)
020af47 - Merge exacMerge exact running-now from Claude Code's background list, Tasks footnote, approved names for Codex (decisions 8-10)
f66a9bf - AgentsAgents: exact "running now" from Claude Code's background list; Tasks footnote; approved names for Codex too
f346748 - Merge CodeMerge Codex Reserve fix, unmeasured spans on the Limits chart, reading age in the inspector (decisions 1-3)
dc1036c - Codex ReseCodex Reserve readings never count as Codex's limits; old readings drawn as unmeasured; inspector age and reset-passed row
2018782 - Merge pixeMerge pixel activity strips on the player card and the Models dossier (decision 7)
0198d3f - READMEREADME: the Claude desktop app's Code tab runs hooks but not the status line (founder's test, 19 Oct)
732ab36 - Card activCard activity log and Models ACTIVITY strip as pixel-density tiles
9bf557e - SiteSite: rebuild with the new screenshots (#7)
9aa090f - READMEREADME: screenshots from tonight's app, and the new Models screen (#7)
540dc70 - SiteSite: rebuild at bc9c5aa (records, loose ends, de-duplicated progress)
1b1498e - Merge loosMerge loose ends: probe/debug runs isolated from the live install, perf harness fixes, CodeQL note
bc9c5aa - Isolate deIsolate debug and probe runs from the installed app; make perf time the release helper
a3e9612 - Merge recoMerge records catch-up: INTEGRATION.md reflects what is applied
7856b75 - Brand INTEBrand INTEGRATION.md: record what is applied; the app icon is wired
3944faa - Merge websMerge website fixes: rebuilt pages, font licence wording (OFL 1.1), Progress page de-duplicated
7972c5c - SiteSite: rebuild for current main; one row per increment; font licence as in TRADEMARKS
54e227d - Merge fit Merge fit every Dashboard page at the 1100 pt minimum window
e73a59b - Fit every Fit every Dashboard page at the 1100 pt minimum window
22cf598 - Merge 30-dMerge 30-day calendar: text on the plain square, activity as a pixel band (no cut-out box)
cddb2cf - 30-day cal30-day calendar: figures on plain ground, level as a pixel band below them
46d50bb - Merge ModeMerge Models redesign: roster + dossier, level track, how-to-level-up cards (founder's 5 references)
d21712e - ModelsModels: roster + dossier (founder's pick, proposal A)
ab491d2 - Merge apprMerge approved custom agent names: exact-match allowlist set in Settings, enforced by the helper and the app
d3bf40d - Agent nameAgent names: show approved custom Claude Code agents by name
4651679 - READMEREADME: logo, website docs and design system; bring features up to date (#6)
4bb2986 - Merge menuMerge menu bar decisions: flatline only for windows that hit their limit; % follows the driving card
65875f3 - Menu bar iMenu bar icon: flatline only for a window that hit its limit; % from the driving card
5abb1db - CI, CodeQLCI, CodeQL: runs on main always finish; only a newer pull-request push replaces a run
3c48f17 - Merge pixeMerge pixel activity calendar and year switcher back to 2025
847fd24 - Activity cActivity calendar: levels as pixel density; the year switcher goes back to 2025
2d831f9 - Merge pixeMerge pixel bars: fills follow the frame's stepped pixels; bar charts drawn as pixel columns
12ba130 - Code scannCode scanning: CodeQL advanced setup with Swift (#5)
707fe7c - Pixel barsPixel bars: progress fills follow the frame's steps; bar charts drawn as pixel bars
75b89e0 - Merge agenMerge agents panel: subagents running now across tasks, readable types, latest-task layout
d601d19 - Merge CodeMerge Codex provenance and reading fixes: Codex's own source in the inspector, last reading caught, other allowances ignored, honest stale cards
4453ebb - Agents perAgents per task: show subagents running now across tasks; readable types; latest-task card layout
0a15fd7 - CodexCodex: its own provenance, the newest reading, honest stale cards
b348d4c - Merge menuMerge menu bar states: stale mark follows the cards behind the shape; crisp % text
6348de3 - Menu barMenu bar: stale mark follows the readings behind the shape; crisp % text
382e60c - Web dashboWeb dashboard: escape every notice; record the applied GitHub settings
d9058a3
- CICI: run the quality gates on GitHub Actions; Dependabot version updates (#4)
150e5ee - SiteSite: rebuild with quiet hours and reminders, current names and the changelog naming note
a2bee71 - Merge quieMerge quiet hours and scheduled reset reminders (2.1, 2.3)
00c3e64 - Quiet hourQuiet hours with a morning digest, and scheduled reset reminders (2.1, 2.3)
0fc4eb8 - Stop timinStop timing flakes in helper tests; CLI moves old Pulse installs; drop PULSE_ config names
484ac20 - Remove theRemove the unused Silkscreen, Pixelify Sans and VT323 fonts
020afef - Merge pullMerge pull request #3 from obileonardo/docs/add-chimexxd
92a6fa0 - READMEREADME: add a Contributors section
b0f139c - Merge inteMerge internal rename Pulse → Clepso, with the launch-time move of existing installs
9c79a45 - Retry the Retry the settings.json rewrite within the same launch
5696ec8 - Docs and sDocs and site: Clepso paths, names and the move from the old layout
65464f3 - Move existMove existing installs to the Clepso folders at launch
430df49 - Rename PulRename Pulse to Clepso in code and build names
ce7f14d - App identiApp identifier: com.elvisobi.clepso (helper com.elvisobi.clepso.statusline), sign-in scheme clepso://
bfdd776 - Rename to Rename to Clepso: the repository (obileonardo/clepso) and the Swift package
514b75a - Brand pipeBrand pipeline: Pillow 12.3.0, CairoSVG 2.9.1, Brotli 1.2.0, fonttools 4.60.2 (Dependabot advisories)
4aec185 - Open-sourcOpen-source Stage C: release validation and go-public record
2863a6c - Dashboard Dashboard opens at three quarters of the screen, then where it was left; Card page: card on the right, text level with its top, actions with its bottom
a84b2c6 - Delete CleDelete Clepso data: checkboxes instead of a trash icon per line; delete only what's ticked
8348b7c - Merge keybMerge keyboard-only and Reduce Motion pass (item 9)
07c3716 - docsdocs: keyboard-only and Reduce Motion checks (item 9)
1a835c2 - KeyboardKeyboard: pixel focus ring on every self-drawn control, charts and calendar by arrow keys, ⌘, opens Settings
c22f026 - Reduce MotReduce Motion through one switch and the motion tokens; probe tooling for item 9
ba56f33 - Merge popoMerge popover open speed (item 8): cached formatters, launch warm-up, Codex reads off the main actor
e968cb6 - ProbeProbe: time opens after an idle gap
6454ca6 - Popover spPopover speed: read Codex's files off the main actor, parse timestamps with shared parsers
67071ab - Popover spPopover speed: render the popover once off screen at launch
5cb6bf2 - TestsTests: wait for the Codex snapshot instead of racing the scan's refresh
828d30f - Popover spPopover speed: make each date formatter once, not on every render
01031f3 - Merge lateMerge later milestones (item 10): time-travel harness and its three fixes, .ics calendar (hidden in Stage A), release and Apple-platforms notes
2cc8d99 - Merge branMerge branch 'main' into feat/later-milestones
57692e6 - DocsDocs: release runbook (4.1) and iPhone, Watch and widgets feasibility (4.2)
20ee7fd - One-tap CaOne-tap Calendar for weekly resets, as an .ics file (2.5)
bd71710 - Agents perAgents per task: earlier days name the day in recent tasks; the Claude Code section says so when Codex's is shown
8c2b221 - Alerts tooAlerts too old to be news are dropped, logged once; time-travel harness (2.4)
b7c9e0a - Times follTimes follow the locale's 12/24-hour convention (2.4)
87bd656 - Time zone Time zone and locale follow the Mac while the app runs (2.4)
1347863 - Merge CodeMerge Codex agents per task (item 4)
7184449 - Session paSession page: Codex agents per task, while reading Codex is on
d7c9138 - CodexCodex: agents per task from its session files, read without decoding
6dcc2af - Merge menuMerge menu-bar state family (item 7)
7eb3477 - Menu barMenu bar: the brand kit's state family (beat, approaching, flatline, clock, demo, waiting, not connected) from one generated table
5c226d0 - SiteSite: rebuild (email logo asset)
8f003c0 - Merge branMerge branded Clepso account emails (templates, local config, CI check, EMAIL.md)
8ddf236 - Stats › OvStats › Overview: Codex's tokens per day by model, with total, output, active days and top model for the range
4eccc84 - DocsDocs: account emails (templates, previewing, hosted project, SMTP recommendation)
e97d3dd - Web dashboWeb dashboard counts agents as the Mac does: Claude Code's internal (typeless) agents left out of uploads
b22c1eb - Account emAccount emails: Clepso-branded Supabase Auth templates for sign-in, new account, email change and recovery
573c689 - BrandBrand: header logo for account emails, deployed with the site
9f63134 - Merge dashMerge dashboard premium pass: 32 pt section air, stat cards, aligned titles, agents-per-task counting fix
f53658d - Dashboard Dashboard pass: hero figures on Limits and Goals, one heading per chart, Arena meters aligned
52f8e6f - Merge branMerge branch 'main' into design/dashboard-premium
b64df9d - Dashboard Dashboard cards: Agents per task, Session's figures and Overview at a glance in the pixel card language
fd6435e - DashboardDashboard: page title aligned to the column; pages fit the window at its minimum width
31135e6 - Dashboard Dashboard sections: 32 pt of air above and below each section's content
4fc94bd - Agents perAgents per task: Claude Code's internal agents aren't counted as subagents
89f1a99 - Codex tokeCodex tokens per day and model: each thread's running total, read once in the background, then only what's appended
510f083 - Upload on Upload on quit: when signed in, counts not yet sent go up before Clepso quits, waiting 3 s at most
0b5ff72 - Merge playMerge player card redesign: Clepso mark, totals, lines, accurate streaks, live updates, tilt and flip
ec32398 - SiteSite: rebuild with the web dashboard in the menu, roadmap rows 3.5-3.9 and the village's planned agents
6d5bbb7 - Card backCard back: days before the first session drawn faintly; the back never outgrows the front
6dcf805 - Player carPlayer card redesign: mark, total tokens, lines, clear streaks, live updates, flip
29c2706 - DesignDesign system: the Clepso mark as a view, and a display size for a card's hero figure
2294529 - Merge web Merge web dashboard (/app): email-link sign-in and read-only views
dd5bc6f - Popover foPopover footer: 4 pt more room between the freshness line and Quit
5ac329b - Accounts cAccounts config: site URL and sign-in redirect for clepso-app.vercel.app/app
36ab64d - Privacy anPrivacy and security: the web dashboard (§9.1)
b600515 - SiteSite: generate the web dashboard at /app
921f0b3 - Web dashboWeb dashboard (2.0 step 3): /app page, email-link sign-in and read-only views
7a10c4e - Card dataCard data: lines added and removed over the sessions Clepso keeps
2c8a4aa - Popover foPopover footer: a refresh button beside the freshness line, and Quit framed with a power glyph so it reads as an action
f625dc7 - CardCard: streaks count days Clepso saw after the stats file's last day
8a65113 - Menu bar cMenu bar counts Codex: icon and % take the highest of both agents; site village marks Gemini, Grok, Cursor, Copilot, Windsurf as roadmap
2db559b - 2.1–22.1–2.3: limit alerts at 80, 95 and 100%, reset expected and ready again
24a1d6d - Fix 3a41a8Fix 3a41a85: the window-frame helper is nonisolated (strict build was red)
4ce9217 - 1.171.17: the Dashboard opens filling the screen; the page column grows with it
3a41a85 - Rename theRename the product to Clepso (founder decision, DECISIONS C6)
f6597c6
- SiteSite: ship the OFL beside the published font files
cee088f - Brand liceBrand licence: fonts under the SIL OFL, name and logo reserved
48abaff - Strict buiStrict build: no warnings, and the gate now fails on any
0be8821 - SiteSite: rebuilt after Stage B (current screenshots with a neutral profile name, no private project names)
20d1d9f - Open sourcOpen source: Stage B record, owner decisions, CI proposal in contributor mode
121dad8 - RepositoryRepository hygiene: .editorconfig and .gitattributes
3efefde - READMEREADME: current features, local configuration, Sync off in source builds
49b2ba3 - Community Community files: contacts, contributor CI mode, public design docs
eb18cbe - LicenceLicence: MIT at the root; notices list brand assets as an open decision
d989fb9 - CommentsComments: no references to private planning documents
a16a634 - Public desPublic design docs: architecture, data model, privacy and security, fixtures
33011e5 - ScreenshotScreenshots: neutral profile name and a synthetic statistics file
3d32276 - make cimake ci: strict by default, --contributor opt-in, accounts-project gate
e52577c - Ship thirdShip third-party licences inside Pulse.app
afc293c - Build confBuild configuration: signing and accounts project from local xcconfig
2841e56 - Sync off iSync off in builds without an accounts project
c8826ff - GitHubGitHub: issue forms and pull request template
53d5d48 - Community Community files: contributing guide, security policy, code of conduct, notices
fc6d215 - READMEREADME: detailed public README checked against the code
6628293 - Open sourcOpen source: proposed LICENSE, CI workflow and Dependabot config (inactive)
3cfa6a5 - Open sourcOpen source: Stage A readiness audit and GitHub settings plan
339190b - 1.161.16: Pulse's own typefaces, app icon and menu bar mark in the app
3d70caf - SiteSite: the Pulse identity on every page; design-system page shows the five themes
261c05b - Merge branMerge brand/identity: the Pulse mark, Pulse Pixel and Pulse Mono, brand and design-system guidelines
dcd064f - BrandBrand: favicon.ico carries 16, 32 and 48 px; review screenshots
d209333 - SiteSite copy: Codex is read today (village, Metrics sources, Privacy, footer)
af74060 - DesignDesign system page rebuilt as brand and design-system guidelines
7c66b9e - BrandBrand: export brand.json for the design-system page
8fca5bb - 3.4c3.4c (screens): Codex in the panel, the Limits page and Settings
553845f - Merge desiMerge design/themes-premium: five colour themes and the premium detail pass
417394c - HomeHome: limit meters use the state colour, matching the popover in every theme
a151b1a - BrandBrand: CoreText specimens, font checks, reproducible pipeline, notes
a19fde9 - Plan pickePlan picker: one ruled action row (Skip or Cancel left/beside, Save right)
1d529b4 - Sheets, onSheets, onboarding and Dashboard pages: pixel chrome, figures over sentences
18f74d9 - BrandBrand: the Pulse mark, lockups, app icon, menu bar icon and favicon
7b2aad6 - BrandBrand: Pulse Pixel and Pulse Mono, drawn in code
8f64438 - PopoverPopover: one action bar, demo strip, equal cards, status chips
0f6cdc1 - SettingsSettings: choose a colour theme; every window follows it
dfec6e1 - DesignDesign: four colour themes (Amber, Cobalt, Orchid, Graphite) beside Phosphor
1509862 - 3.4c3.4c (data): Codex in the app model and the overview snapshot
9ee28c7 - 3.4a–b3.4a–b: Codex limits reader and a store with one account per agent
aecfbb1 - SiteSite: the footer village, coding agents living around the Pulse tower
8c5e31d - SiteSite: rebuilt from the founder's 50 Mobbin picks
4af903c - SiteSite: screens for 1.11-1.14, light mode; regenerated
2154a42 - 1.141.14: every page in the Account page's structure
28ea8f4 - 1.131.13: pixel icon set, Phosphor light mode, appearance switch
c4ff386 - 1.121.12: every Dashboard page re-laid out after the founder's Mobbin picks
9ac706c - 1.111.11: wide, short menu bar panel; settings in the Dashboard; pixel menu bar icon
dfbd95d - SiteSite: Privacy page; Account screen; regenerated
00d9902 - 2.02.0 step 2: sign in by email link and upload daily counts (Sync module)
8bb4720 - 2.02.0 step 1: accounts backend schema with row-level security and account deletion (local Supabase)
8d913c9 - SiteSite: Home, Card, Goals, Account and Settings screens; regenerated
87f5680 - 1.101.10: dashboard restructure after the Aqua Voice reference, in pixel style
ec6977d - SiteSite: agents per task on Metrics and Architecture; regenerated
5a7f6ee - 1.91.9: agents per task through Claude Code hooks (counts only, opt-in)
0d4d527 - DesignLevel legend in the app; documentation website around the design system
df0dca7 - DesignArena levels from output tokens on fixed targets, bar labelled exactly
d7bccdf - 1.81.8 UI refinement: readable text, sidebar navigation, true charts, model arena
2476304 - DesignDesign system update: Phosphor specimens, app screens, classic set kept
e24bf5c - 1.7e-g1.7e-g: Details window, Stats view, Phosphor redesign rollout
2876f81 - 1.7d1.7d: opt-in reader for Claude Code's statistics file (/stats data)
7b2c478 - 1.7c1.7c (part 2): usage history and labelled pace estimate
775eaa1 - 1.7c1.7c (part 1): store changes and check-ins, not every repeat; retention
3ea0e07 - 1.7b1.7b: Phosphor pixel design layer (concept approved)
5eeaebe - 1.7a1.7a: session detail data (durations, lines, prompt cache) and migration v2
d4908b2 - C7C7: say only what the source reports; count unread limit windows
4d160ea - MilestoneMilestone 0 and increments 1.1–1.5: Pulse status-line monitor for macOS
7aa1026
No commit matches. Clear the search or pick All.