Cycles by week
Week of Aug 3

4 started, 15 carried live.

Busiest record: c59 inventory (6 entries) · 53 carried cycles have gone quiet · layer v0.9.3 → v0.9.6

Started
4
Still open
68
Closed
0
Record entries
11
Commits
38
Captures
0
Releases · deploys
4

Commits

38 commits across 6 repos, on each repo's checked-out branch.

Cycles

Started 4

c60inventory-depth

_To be defined — see [initial-prompt.md](initial-prompt.md)._

started Aug 5

Still open 15

c59inventory

Design qdash inventory page to surface agent status and footprint at a glance

started Aug 22 wks · moved this week6 in the log
c58agent-mini-card

AgentMiniCard — compact agent summary card composing the AgentPawn, with mock page

started Jul 263 wks · moved this week
c57pixel-pawns

Build the agent pawn state system from the first real Illustrator pawn art

started Jul 263 wks · moved this week
c54Policy Enforcement Page

Design-site mock of the v2 Policy & Enforcement page from Figma — tabbed policy-control table built on UxTableList

started Jul 223 wks · moved this week
c52Dark Mode (Subtle) — Iteration & Theming

Build a dark-mode color system for the qcontrol app consolidation (qdash, qglass, Nuxt UI), with a design-app-based color picker and theme-file persistence for rapid iteration.

started Jul 164 wks · moved this week
c51App Consolidation

Understand the fractured qcontrol app ecosystem and consolidate it into a simple, clean, demoable product on a Nuxt + q-nuxt-layer front-end

started Jul 144 wks · moved this week
c49Fix the Cloudflare Pages Deploy

Make push to main reliably deploy the design site to Cloudflare Pages *(2026-09-25: reframed as "make the build a manual local step", see PICKUP.md)*

started Jun 119 wks · moved this week
c48Design Site on Layer

Close the layer gaps so the design site uses only q-nuxt-layer components for everything presentational

started Jun 119 wks · moved this week
c19AI Asset InventoryBob-Wire

Precedent research for an AI asset inventory page — how existing products present inventories of agents, MCP servers, files, models, and related AI assets

started Jul 312 wks · quiet 2
c12qcontrol-live-viewQflow

Live qflow visualization of qcontrol agent events — agents pulsing to event-type nodes, fed by qdash SSE, with a growing timeline scrubber

started Jul 292 wks · quiet 2
c55agent-market-definition

Align the qcontrol agent-monitoring dashboard to specific personas and find market alignment — hypothesis-first, validated against calls later.

started Jul 24parked
c7avoma-notesMarket Analyst

Explore and integrate Avoma notes data into extraction pipeline and dashboard visualizations.

started Feb 25parked
c4refinementMarket Analyst

Refine how extracted data is displayed in the dashboard and improve extraction quality where gaps exist.

started Feb 24parked
c3oauthMarket Analyst

Add Google OAuth to restrict dashboard access to @qpoint.io team members.

started Feb 20parked

Closed 0

Nothing closed

Pages & components

What this week's captures picture — . Each links to its evolution: every moment it was shot, across cycles.

No page or component captures this week.

Log

Key Changes entries dated inside the week, from each cycle's record — newest first within a cycle.

c62 build-partner

Aug 8
  • Phase-0 decisions recorded (2026-08-08): mock-first placement, focused transparency, explore both shared + per-partner surfaces

c61 Integrations & Teams

Aug 8
  • Research (2026-08-08): research.md — current-state read of both qdash pages, ranked JTBD per page (grounded in c55 personas), qdash punch list (drift-report items, not fixed here), and a comparable-trends digest. Companion docs research-teams.md + research-integrations.md cover ~20 products across dev-infra / security-observability / enterprise-IT tiers; 15 verified screengrabs in research/ with source attribution. Standout findings: Okta/Linear JIT provisioning + Snyk's auth-method column as the mental model for invite-less observed identities; Datadog's Detected/Missing-Data states and the near-universal absence of a test-send affordance on the integrations side.
Aug 8
  • teams-ideas (2026-08-08): /pages/teams-ideas — four concepts: (1) one risk story per row (8 cols → 5, verb deep-links), (2) teams as the unit (cards + promoted unassigned bucket), (3) the mapping workspace (queue/evidence/suggestions/bulk assign, SCIM-projected banner), (4) SCIM-day members & roles (projected). Meridian numbers extended: $1,034/30d attributed + $306 unattributed (23%), priya 2.4× user spend median, Payments 2.7× team token median.
Aug 8
  • integrations-ideas (2026-08-08): /pages/integrations-ideas — four concepts: (1) honest directory + loopback ledger ("0 bytes — verified, not promised"; kills the PagerDuty/Slack live-and-projected contradiction), (2) connector shelf (filterable grid, request tile), (3) severity-major routing console (test-send, disable path, replayed "would have fired" strip), (4) projected→live connect flow (credentials → scope → verify, health states, projected · dry-run · live lifecycle ribbon).

c59 inventory

Aug 7
  • Iteration 8 (2026-08-07, v2 refined + shipped to qcontrol): the v2 mock iterated with Mark to its final form — Recent Sessions restyled as a SurfacePanel (compact ranked rows: run id + model + when, status pill + cost, token bar), captions dropped across all panels, row caps at 7, and the header simplified per the comp: pawn + name · Security Score (DataSmile, per-agent score) · Spend · stroke UxButton "View Full Agent Details"; the old identity strip became a Metadata column beside sessions. Two gotchas logged to memory along the way: divide-* containers hijack direct children's border colors (the grey stroke-button bug), and the close affordance moved out of ExpandRow. Close X redesign (layer API): the sticky viewport-anchored X is gone; UxTableListExpandSection now renders a card-anchored X only when an @close listener is attached, and ExpandRow wraps its #details slot in one ExpandSection by default (same chrome as DataTable's old hand-rolled wrapper, now with the X) — a bare prop opts out for sectioned stacks, the details slot scope provides close, and open()/close() are exposed for template refs (the mock's programmatic-click hack retired). DataTable dropped its wrapper and gained bareDetails + close forwarding. Extraction: DataSurfacePanel (data/SurfacePanel.vue, from the byte-diffable replica; grid template moved to inline style per the layer's no-arbitrary-classes rule) — both local copies deleted, all design + qdash usage sites swapped, demo + registry entry added. qcontrol port (Stage B): new qdash ui/app/components/inventory/AgentCard.vue — the three-section card wired to real data (roster row renders the header instantly; lazy /api/agent fetch feeds metadata, quota bar + governance denied-count (kept from the old expand per Mark), rich sessions with running/ok/error pills, and the four Surface panels with drill-down + listing links, oauth-pending joined by server name). Replaces AgentExpand.vue on /inventory and AgentExpandDetail on machine detail (Teams keeps the interim card until its redesign). Opportunistic fixes: PawnAgent → AgentPawn on agent detail (component never resolved — pawn was invisible in prod), EXPAND_CAP 15 → 50 TODO, dead SurfaceMore.vue deleted. All 133 qdash vitest tests pass; Vite transforms clean. Ships as layer v0.9.6 (with Mark's UxButton size + grape-600 default and the AgentPawn zzz tweak) + a qdash dist rebuild.
Aug 6
  • Iteration 7 (2026-08-06, the designed expand-row): /pages/inventory-agent-expand — the designed agent expand-row from Mark's designer comp, the deliverable design-brief.md queued when it marked qdash's expand panel INTERIM. A 4-row mini ledger (row cells verbatim from ledger-v2) whose expand card composes: AgentPawn + name header with the AgentInline sub-line scaled up, the agent-detail identity strip (User / Credential / Host / Terminal DataIdentityItems + Organization / Account IDs) with dashed staged pills on the two Tier-3 fields, a deliberately blank Quick Overview (comp annotates "Leave blank, TBD"), a Recent Sessions mini-table, and four agent-scoped Surface panels copied from qcontrol's live /inventory — app/components/inventory/SurfacePanel.vue is a byte-diffable replica of qdash's components/inventory/SurfacePanel.vue (only pct inlined), kept 1:1 for the eventual layer extraction. Featured row (samir's sparse brand-new install, per the comp) auto-opens on load; priya's row carries 12 tool rows so the Tools panel demos UxShowMore overflow. Cross-foot rule: row Sessions/MCP/Tools counts equal the card's workspace-runs total and panel row counts. Layer gaps logged: UxTableListExpandRow's isOpen prop is dead (shadowed by a local ref — no declarative default-open; the mock simulates a click), and the layer has no github icon (qdash-only), so workspace rows all use folder. Flagged for Mark: posture vocabulary divergence — the comp says "Standard" (qdash's danger_level word) where the c59 ledgers say "Healthy"; the page shows both. Addendum: SurfacePanel gained a compact mode (Mark's ask: no border, no padding, tighter leading, smaller fonts — one type notch down across title/caption/headers/rows; #row now passes compact so consumer cells can adapt their padding/pills). Applied as an identical additive diff to both copies (design replica + qdash's original, default false so qdash pages are untouched) to preserve diffability; the expand card's four Surface panels now render compact, and the Quick Overview / Recent Sessions row was made non-responsive (always [2fr_3fr]) after review.
Aug 6
  • Iteration 7 addendum (2026-08-06, sectioned expand row): Mark's stacked-cards comp executed per expand-row-sections-plan.md — new layer component UxTableListExpandSection (ux/table-list/ExpandSection.vue): a borderless white section card (rounded-12 bg-surface p-6 shadow-lg, no props, default slot) for stacking inside an UxTableListExpandRow #details well; the consumer owns stack spacing (space-y-4) so the well tint shows through the gaps. Close stays the ExpandRow's sticky X (no per-section X). New evaluation page /pages/inventory-agent-expand-v2 — the agent-expand mock rebuilt as three sections (header+identity · Quick Overview/Recent Sessions · Surface), the original single-card page kept untouched for side-by-side comparison; both registered in page-registry.ts. Documented: _demos/UxTableListExpandSection.vue + registry entry (table group). Headless-verified 11/11 (3 borderless 24px-pad cards, 16px tinted gaps, X collapses, compact-panel invariants, Show all 12 toggle, clean console). Flagged for Mark: the ExpandRow X abuts section 1's right edge in the px-8 gutter (dx 0) rather than sitting inside the card padding as the comp draws — same geometry as the single-card page; moving it means touching ExpandRow's right-14, which qdash consumes. Joins the pending layer release (with NavJumpPills, AgentInline, UxShowMore, UxPixelArt, the SurfacePanel-era compact props).
Aug 3
  • Iteration 5 (2026-08-03, the primary slot): analysis of the v2 overview against the fleet-lens questions — the band answers coverage (#2) and risk (#4) but never presence (#1, "alive right now"), and "34 of 39 installs" beside "34 monitored" agents leaves the page's noun ambiguous. Four concepts appended to /pages/inventory-overview-ideas as a Round 2 (smoke-checked, 200): (4) presence hero — 34-agent count + state-segmented bar in the coverage bar's visual language (AgentInline vocabulary; 20 active · 10 idle · 2 stopped · 2 errored, per-segment hover for who); (5) presence funnel — 39 installs → 34 monitored → 31 seen 7d → 20 active now, a dormancy step that breaks the unrealistic 34-installs = 34-agents coincidence; (6) shadow-first exception — the five named unmonitored chips with onboard → promoted to the hero, the % demoted to sub-line; (7) recommended composition — hero + funnel sub-line, coverage relabeled "Install coverage" + at-risk demoted into v2's deliberately-empty right side, v2 footprint strip verbatim. Backing roster of 34 cross-foots per-machine monitored counts and harness totals (CC 20 · Codex 6 · Cursor 6 · Gemini 2). Caveat carried from buildability.md: presence states are category C (running/stopped + derivable errored/idle today) — the hero makes that bet prominent by design.
Aug 3
  • Iteration 6 (2026-08-03, Mark's review of Round 2): Idea 7 refined into Idea 7b "Uniform tiles" (7 preserved as-built): the 44/36 hero-vs-secondary size split read as misalignment, so all three tiles share :size=44 and one sub-item rhythm (number → h-4 bar row → text-12 caption; At-risk's caption sits on the bar line). Verbiage: coverage tile relabeled "Visibility - what is monitored" (the do-we-have-eyes-on-it word; plain hyphen), its caption switched to the Agents-legend totals style (swatch dot + bold count: ● 34 monitored · ● 5 shadow); funnel chain moved to a caption beneath the box; secondaries left-aligned (a floor-alignment experiment was tried and reverted). At-risk renumbered fleet-wide 5 → 4 (2 critical + 2 at-risk) on the active pages (ledger-v2 + all overview-ideas tiles + the Idea-1 spark) — the double-5 next to "5 shadow" manufactured a redundancy read; the two are different axes (posture of the monitored vs installs unseen), and 7b's At-risk label now says so: "At-risk - agent posture". Shadow stays amber, not red: red = confirmed bad (critical/errored), amber = unknown/attention — consistent with every c59 shadow surface. Archived pages (roster, ledger v1/v3) keep the old 5 as historical snapshots. Also fixed while reviewing: SparkChartOld.vue's un-scoped polygon, polyline { v-bind(...) } style block leaked document-wide and turned every hand-rolled spark solid black (fill collapsed to the SVG default outside the component); scoped it plus Trend.vue/TrendDirection.vue — gotcha added to memory.
Aug 3
  • Iteration 6 addendum (2026-08-03): layer additions from the round — DataMetric_Base gained a default slot (content renders inside the inline-block root so the label hairline spans it; documented in the demo + registry), and DataMetricValue got line-height: 1.05 on both value and unit (display-numeral leading: the inherited 1.5 reserved ~22px of dead air under 44px values, and the unit's taller line box misaligned tiles with units). 7b also lost its vertical separators and widened to gap-x-20. The finished 7b band was then applied to /pages/inventory-ledger-v2 as its overview (34-agent roster + presence helpers copied over, funnel caption beneath the box, provenance comment updated) — the ledger mock now leads with presence. Both layer changes ride the pending release.

c53 Agentic Workflows

Aug 6
  • 2026-08-06 — Stage 1 capture only; parked by design.

Captures

0 screengrabs taken this week.

No captures this week.

Releases & deploys

Layer releases 4

v0.9.6Aug 7v0.9.6: expand-row section chrome + DataSurfacePanel (c59/c60), with migration notes
v0.9.5Aug 6v0.9.5: UxShowMore — canonical capped-list overflow control
v0.9.4Aug 6v0.9.4: NavJumpPills, brand-logo icon tier, DataTable limit+footer, folder/endpoint icons
v0.9.3Aug 3v0.9.3: UxPixelArt themed pixel-art renderer + endpoint pawn family

Design-site deploys 0

No deploys recorded this week.

Note: Deploys come from this checkout's deploy-branch reflog, which starts 2026-10-16.

Qpoint Brand Style Guide