📊 Daily Overview
Total Activity: 13 commits + 2 merges across 3 repositories
🚀 GitHub Activity
1. Mothership 🔒 — 6 commits + 2 merges
feat(path-c): migration v2 + workspace bootstrap admin tooling · bd8c109
- mongo migration v2: workspace_domains (domain unique + workspaceId
lookup) + entitlements (workspaceId+feature unique) indexes. Backs
the WorkspaceFromOriginMiddleware + entitlement gate primitives that
unblock Vipin’s 2026-05-22 launch.- motherboard-infra/scripts/admin/: idempotent workspace bootstrap
script + per-workspace JSON configs (Vipin, Tathya). Manual admin
surface that the future new-client flow will replace.- TODOS.md: Path C 7-day sprint scope, post-launch calendar primitive
(replaces from-scratch scheduling), and motherboard-mcp Q3 framing.
docs(claude.md): Path C domain-boundary + calendar/MCP rules + gbrain v0.27 setup · 4dc6bd8
Two scopes, both context-only edits to the agent’s repo briefing:
- Path C architecture rules: plugins own domain entities; Motherboard
owns infrastructure. Cross-boundary via opaque references + internal
webhooks. Calendar primitive (post-launch) wraps Google/365/Cal.com/
iCal. motherboard-mcp Q3 candidate; pattern-preservation rule today.- GBrain config block: local-stdio pglite, artifacts sync to
gstack-artifacts-rupali.b, repo policy read-write. Search guidance
block tells the agent when to prefer gbrain semantic search over
Grep, with command palette for code-def/code-refs/code-callers
(some surfaces pending upstream gbrain v0.28+).
feat(path-c): WorkspaceOriginCORS middleware + dynamic CORS from workspace_domains · 3f9cace
Replaces the static CORS_ALLOWED_ORIGINS allowlist with a data-driven
lookup against theworkspace_domainscollection (schema landed in
Day-1 migration v2). Each request’s Origin header is resolved to a
workspace via a 60s-TTL in-memory cache; on hit, the middleware sets
workspace context for downstream handlers AND emits CORS headers from
the per-domain config (allowCredentials, methods).…
feat(path-c): seed-path-c make target + preserve host:port in origin lookup · 16018f3
C2 of Path C — wire the workspace-bootstrap admin tooling into the
seed pipeline somake seedbrings up Vipin + Tathya client
workspaces with their domains and entitlements alongside the platform
workspace.
New
seed-path-cmake target: globs scripts/admin/path-c-*.json,
loops each through bootstrap-workspace.js (idempotent — domains and
entitlements upsert on unique keys). Slots into the seed chain
between seed-vercel-rbac and seed-config. Honors the platform’s
dual-mongosh path (docker exec when motherboard-mongodb is up,
local mongosh otherwise).Onboard a new client by dropping a path-c-
.json in
scripts/admin/ — no Makefile edit needed; the loop discovers it.…
feat(path-c): plugin role declaration receiver + plugin_roles collection · 240ac27
C7 of Path C — plugins declare workspace roles via
motherboard.json roles[], the SDK posts them at boot, client-manager upserts into a
new plugin_roles collection. Symmetric to the route declaration flow
that already exists.Architecture decision: plugin-declared roles live in
plugin_roles,
not auth’sroles. Separate collection = separate lifecycle —
plugin uninstall can delete its roles cleanly without touching
human-curated entries. Field shape mirrors auth’s models.Role
(Name, Description, Permissions[Resource, Actions]) so a future
capability-flattening pass can union both sources without per-source
translation when minting plugin tokens.What landed:
…
feat(path-c): internal webhook dispatch — platform → plugin (C5) · aad671f
New scheduler job type and handler that fan out platform-originated
events to plugins via {plugin.microserviceUrl}/internal/{eventType}.
Symmetric to the existing inbound provider→plugin dispatch flow
(handleVercelEvent), but the producer is Motherboard itself: future
Razorpay capture (C4), calendar event-changed, notification dispatcher.Three pieces, one round trip:
- JobType constant mirrored in motherboard-api and scheduler
(motherboard-coordination) — both modules need the string for
their respective producer/consumer roles.…
Merges:
- Merge pull request #37 from Rupali59/feat/path-c-internal-webhook-dispatch
- Merge pull request #36 from Rupali59/feat/path-c-workspace-from-origin
2. VipinKaushik 🔒 — 5 commits
feat(scaffold): clean-slate rebuild — V1 surface only, design-system wired · e748267
Strip the legacy marketing site to a minimal V1 scaffold. Every surviving
file is on-spec or supports an on-spec route. Foundation work (Tailwind
tokens, theme toggle, fonts, redirects) lands here so Phase 2 (homepage
editorial layout) can build cleanly.Removed
- 15 legacy route directories (consultations/, calculator/, calendars/,
blogs/, dashboard/, festivals/, gallery/, geocentric-view/, info/, legal/,
memberships/, muhurat/, resources/, vrat-upvaas/, debug/) — none in V1 spec- All app/api/ routes (zero active imports from V1 surface)
- 9 unused component dirs (animations, brand, calculator, consultations,
features, forms, layouts, memberships, ui)- lib/i18n, lib/currency, lib/a…
feat(home): hero sky-mandala + Knowledge Hub teaser, scrub fabricated claims · 2296d73
Phase 2 components — visual anchor + design-system bridge to /learn —
plus correction of factually wrong copy that referenced “since 2007”
(Vipin was 11 then) and a fabricated “Parāśarī tradition” training claim.SkyMandala (new)
- 700×700 viewBox (was 600×600 — cardinals + nakshatra labels were
clipped beyond r=300)- Twelve rashi spokes, twelve rashi labels (English above Devanagari,
stacked via screen-vertical offsets so order is consistent on every
side of the wheel — radial offsets inverted at the bottom half)- Twenty-seven nakshatra ring with hit areas + hover-revealed labels
- One-hundred-and-eight pada subdivisions hidden until per-nakshatra hover
- Three-stage reveal: defaul…
fix(qa): ISSUE-001 — teaser links 404 on /graha/2dad102
Knowledge Hub teaser used English slugs (sun, moon, mars, saturn) but
the graha entity page at app/graha/[slug]/page.tsx accepts Sanskrit
slugs (surya, chandra, mangal, shani) per the inline GRAHAS map.
All 4 graha cards in the teaser were returning 404.Updated teaser-entities.ts to use the canonical Sanskrit slugs
matching what generateStaticParams emits for /graha/[slug].Verified: all 6 teaser links now return 200 (4 grahas + 2 nakshatras).
feat(home): replace 8-card Refusals with single-column Method section · 827171a
Refusals was eight cards of ‘I will / I will not’ assertions —
person-led framing that contradicted the work-led homepage thesis.Method is four cited prose paragraphs in classical-prose voice. Each
paragraph asserts something about HOW the work works, not what the
practitioner refuses:
- Computation precision (Sūrya Siddhānta math, ephemeris-second)
- Reading method (verse, BPHS / Phaladīpikā / Sārāvalī, no summaries)
- Probability / dasha framing (windows narrow, do not eliminate)
- Remedies (named in plain language, never commissioned)
…
feat(home): replace Address with Pricing + How to Write section · ff83afd
Final homepage section restructure. The old Address section was
location-led (‘Where to find me. By appointment only. No walk-ins.’)
which read as a destination page. Replaced with Pricing — three locked
fee tiers, online-only status flag, and the booking path.Pricing tiers (locked 2026-05-04, do not change without Vipin):
Reading 15 minutes ₹3,100
Extended reading 30 minutes ₹5,100
Vastu visit On-site · NCR ₹21,000…
3. motherboard-shared 🔒 — 2 commits
feat(plugin-sdk): RegisterRoles + PluginRole/Permission types · 84de5fd
Symmetric to RegisterRoutes — plugins call RegisterRoles(ctx, roles)
at boot to declare workspace roles frommotherboard.json roles[].
Same auth (plugin_token Bearer), same idempotency (PUT-replace per
(workspace, plugin, name)), same 10s timeout, same direct-to-
client-manager target.PluginRole shape mirrors auth’s models.Role (Name, Description,
Permissions[Resource, Actions]) so a future capability-flattening
pass can union plugin-declared and admin-managed roles without
per-source translation.Receiver lands in client-manager (PUT /api/internal/plugins/:key/roles)
in the parallel motherboard-identity commit. Path C C7.
feat(internal-webhook): producer helper for platform → plugin dispatch · 3212388
New lib (libs/internal-webhook) callable from any Motherboard service
that emits events plugins should react to (Razorpay capture, calendar
event change, notification dispatch, etc.).Surface:
- DispatchRequest struct (pluginKey, eventType, payload, optional
workspaceId/reference/webhookEventId)- JobCreator interface (motherboard-api’s JobService and scheduler’s
satisfy without wrapping)- Enqueue(ctx, jobs, req) — validates + marshals + creates job
Job type “internal_webhook_dispatch” mirrors the constant in
scheduler/models/job.go and motherboard-api/models/job.go (handler
landing in scheduler in the parallel motherboard-coordination commit).…
📈 Development Analytics
Daily Summary
| Metric | Today |
|---|---|
| Commits | 13 |
| Merges | 2 |
| Skill runs | 0 |
| Decisions | 0 |
| Eurekas | 0 |
| CEO plans | 0 |
| Notes touched | 0 |
Decisions logged today
None today.
Eurekas
None today.
Strategic plans authored
None today.
Notes touched
None today.
Running totals (as of this date)
Active days last 90: 57 / 90 (substantive)
Days with any signal last 90: 60 / 90
Skill runs (since 2026-03-25): 74
Commits this year (authored): 829
Decisions logged this year: 0
Eurekas this year: 5
CEO plans authored this year: 12
Projects touched this year: 52
Top projects last 90: portfolio (26d), Mothership (21d), motherboard-shared (13d), Astroclarity (11d), motherboard-core (9d)
💭 My Notes
[Your own thoughts, observations, or context for this day — this section is never overwritten by automation]