Commit graph

142 commits

Author SHA1 Message Date
Natalie
e69ca01e40 ci: fleet do_project cocotte:dev -> cocotte
Matches the simplified single-env DO project layout (one cocotte project for the
store tier + ephemeral fleet). cocotte:dev project removed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 00:28:39 -04:00
Natalie
2154174eab ci: add publish workflow for ct-forge runners + local verdaccio/pypi/swift; set publish flags (org cocotte)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 21:46:49 -04:00
Natalie
c6fcbec129 chore(forge): update git origin to ct-forge with orgname cocotte and refresh examples/comments
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 21:32:20 -04:00
Natalie
54daa39cad chore(platform): update .npmrc + CLAUDE.md
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 11:29:15 -04:00
Natalie
b85e09f5e5 feat(people-service): 0012_people migration + db config + env example
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 11:29:15 -04:00
Natalie
e424b5dc29 chore(infra): add .infra.yaml (convention:infra_manifest) for infra-net reconcile
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 10:10:18 -04:00
Natalie
bb4d9479a2 fix(ci-runners): make ct-forge runner bootstrap actually work on stock Ubuntu
Provisioned the first ct-forge CI runner and fixed every blocker found:

- Stock-Ubuntu cloud-init: no cocotte-golden image exists (only mc-golden),
  so bootstrap bun + node 20 + forgejo-runner from scratch; create build user.
- ASCII-only: an em-dash in comments made cloud-init silently void the entire
  user-data (unacceptable character #x0080) -> nothing ran. Keep it ASCII.
- Host execution mode: register with :host-suffixed labels + container.docker_host
  '-' (no Docker on these boxes); bare labels crash-loop with 'Docker Engine
  socket not found'. Names still match runs-on: [self-hosted,linux,do,ct-forge].
- Registration via admin endpoint GET /api/v1/admin/runners/registration-token
  (org/repo POST returns 405 on forgejo 9.0.3); forge_pat must be the admin PAT.
- README: document firewall prerequisite (forge lilith-forge-fw must allow tag
  ct-forge-runner -> 3000/4873) + verified apply recipe.

Runner ct-forge-do-0 is online host-mode; CI jobs now dispatch (was 0 runners).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 22:30:40 -04:00
Natalie
1fe5f81a71 feat(people-service): standalone identity service on its own DB
New cocottetech platform service (NestJS, port 3061) that owns the canonical
people/identities/relationships/signals model in its OWN database (black:25461),
not the shared platform.db — per the per-service-DB directive. Ported from
lilith's entities/people, dropping the lilith-specific clients/contacts bridges
and quinn_my ownership. Internal /internal/people/* API (upsert-identity,
signals, get, by-identity, summary) behind a service-token guard; health is
public. Consumed over HTTP by prospector and other apps. tsc clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 20:10:02 -04:00
Natalie
4da0b196e7 docs(cocottetech): mark ACS no-agent-commits rule stale; agents commit directly
The apricot auto-commit-service is removed/offline, so the 'write code; ACS
handles commits' rule no longer applies. Agents now author scoped, atomic,
conventional commits and push their own work.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 20:05:08 -04:00
Natalie
7684e6192d docs(infra): update ci-runners README to document target publish services on ct-forge droplet (verdaccio, pypi, swift)
- Ties the on-demand runners to the new registries (Verdaccio npm, pypiserver pypi, Forgejo swift) set up via uvlava TF IaC on the forge droplet.
2026-06-28 17:46:26 -04:00
Natalie
5ff7d68dc5 docs(cocottetech): Wave 1 prospector restructure doc updates (parallel slice): prospector packages now from @applications/@prospector/@packages , deprecate old, LP backend notes, publish for consumers
- Updated cockpit-kit/ios-fe READMEs, CLAUDE, DESIGN etc per plan.
- Co-Authored-By from subagent work + this.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 17:43:06 -04:00
Natalie
7f970ac8e9 docs(prospector): note new @prospector home + published packages in cockpit-kit/ios-fe READMEs, @platform/CLAUDE.md, DESIGN.md (for ProspectorView LP wiring); Wave 1 restructure
Incorporate LP backend truth, GPU anytime script, health proof, MVP inbound replacement, publish for consumers. Verified grep/ls/read.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 17:40:03 -04:00
Natalie
a6777e8641 feat(infra): add ./run forge:setup-registries cmd and update help for new publish services (verdaccio/pypi/swift) on ct-forge droplet
- New cmd to SSH and bring up the registries from the updated compose (from uvlava TF).
- Completes publishing to the new services in the forge droplet.
2026-06-28 17:38:58 -04:00
Natalie
3975a57ec0 docs(infra): update INFRA.md to document no more black for CI/runners — ct-forge on DO on-demand horizontal runners via Terraform IaC (modeled on LP)
- Added row for DO (ct-forge runners): ephemeral, golden image, Terraform scale.
- References migration, LP script logic in cloud-init.
2026-06-28 17:32:57 -04:00
Natalie
1c3461b7c3 feat(infra): enhance ct-forge ci-runners to replicate full LP setup-forgejo-host.sh logic (playwright, SSH keys, host-mode)
- cloud-init now installs Playwright Chromium deps (replicates setup_playwright for LP e2e/build jobs).
- Supports optional ssh_priv_key via TF var (replicates setup_ssh_key for deploys).
- Escaped templates properly; TF validate + fmt clean.
- README/vars updated.
- Completes 'look at lp we have ct-forge' + no more black for runners/CI on DO on-demand.
2026-06-28 17:24:28 -04:00
Natalie
0504e67002 feat(infra): migrate ct-forge CI runners off black to DO on-demand horizontal scale (no more black)
- Updated ci-runners Terraform/vars/README/cloud-init to reference LP's setup-forgejo-host.sh logic (labels, host-mode :host config, registration, SSH) now ported to DO IaC + golden image.
- CLAUDE.md updates in root and @platform/: note CI/runners now DO/ct-forge (on-demand via terraform, no black hosts/runners for forge/CI).
- Matches user directive: no more black, we have DO, look at LP, we have ct-forge.
- Runners: self-hosted,linux,do,ct-forge (general); +publish for packages. LP CI/deploys now target same.
- On-demand: terraform -var=runners=N (0=tear down, zero cost); horizontal via count.
- See infra/terraform/ci-runners/ and LP .forgejo/workflows updates.
2026-06-28 17:14:58 -04:00
Natalie
d34807d829 feat(infra): add Terraform IaC for horizontally scaled on-demand ct-forge CI runners on DO for package publishing
- New module infra/terraform/ci-runners/ modeled after test-fleet (cattle, reusable golden image, 0-cost when idle).
- Horizontal scale via var.runners (pool of DO droplets for concurrent publish jobs).
- On-demand: scale up (e.g. 3-10) before package publish batches across the extracted repos, scale to 0 after (zero cost).
- Reuses cocotte-golden image (pre-warmed node/pnpm).
- cloud-init auto-downloads/registers forgejo-runner to ct-forge using PAT, sets host-mode labels (self-hosted,linux,do,ct-forge,publish).
- Includes templates/publish.yml for use in the new per-package repos (with registry transform, guards, ct-forge target).
- variables for forge_url, labels, registration target (supports org-level for shared package runners).
- Outputs for IPs/inventory. fmt clean, basic structure verified.

This enables the "publish with ondemand infra" for the 49+ package extraction while keeping the 3-orgs model.
2026-06-28 17:09:47 -04:00
Natalie
d899f592cc feat(dx): integrate ctforge into net-tools infra installers
- ./run forge:dns now prefers central net-tools/bin/forge-dns-render (part of net sync) with local fallback.
- Updated dispatcher help, INFRA.md steps, and CLOUD_DX_HANDOFF to document that `net sync` (or forge:dns) installs/keeps the ctforge shortcut as part of standard DX infra setup.
- Symmetric with mcforge.

After this, `net sync` (once net-tools is installed) is the canonical way to converge all hosts/DX shortcuts including the cloud forges.
2026-06-28 10:46:09 -04:00
Natalie
e095e596c2 docs(screening): note LP (lilith-platform) macsync-style call contract for mrnumbers during ct project; LP calls ct/app screening surface, local LP mr code removed at end
See lilith mr-number-client.ts and the mr-number-prospector plan/handoffs.
2026-06-28 10:42:29 -04:00
Natalie
d5c333bb45 chore(dx): switch cocottetech forge dns default to ctforge (symmetric to mcforge:3000)
Makes ./run forge:dns use ctforge by default so http://ctforge:3000 works like mcforge:3000 for magic-civilization.

Updated help text, docs examples, and default in cmd_forge_dns.
2026-06-28 10:37:36 -04:00
Natalie
45c295ffed chore(infra): stop tracking generated .terraform provider binaries
The darwin_arm64 provider binaries (~41MB, downloaded by `terraform init`)
were committed under infra/terraform/test-fleet/.terraform/ — generated,
platform-specific (useless on the linux workers), and churny. Gitignore
**/.terraform/* + *.tfstate*, and git rm --cached the binaries. The
.terraform.lock.hcl stays tracked (it pins provider versions); run
`terraform init` to re-fetch the providers locally.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 06:59:47 -04:00
Natalie
4400b6b65a docs(cloud-dx): add build-once-load-many (artifact Space) to the handoff
Replicate the MC build-artifact Space pattern: publish the deployable
artifact once to a DO Space, fetch it on the rest (keyed by sha) instead
of N rebuilds. Includes the two ssh gotchas that cost real iterations
(ssh -n defeats heredoc stdin; dispatch must pass -i <fleet-key>).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 06:27:49 -04:00
Natalie
a12eedd2e0 docs: initialize placement-market feature design (client-facing discovery & placements marketplace) per approved plan
- README, parent brief with Key Decisions + 8-PR DAG
- placement-discovery sub-brief, specialist contract, screen
- 2 review rounds to 0 issues, all fixes applied
- Follows prospecting patterns, all V4 invariants, citations
2026-06-27 16:20:17 -04:00
Natalie
d114d9d375 feat(cockpit-kit): 📸 add bump screenshot overlay
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 05:00:56 -07:00
Natalie
2bfb0e080d docs(@projects): 📝 update forgejo registry references
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 03:15:18 -07:00
Natalie
5ab10b7553 feat(ai-copilot): add top-aligned image rendering fix
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 00:39:45 -07:00
Natalie
ece72d10e2 feat(cockpit-kit): enforce strict required fields in ingest status
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 12:15:34 -07:00
Natalie
3130c96c44 feat(cockpit): add backfill videos status tracking
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 12:08:21 -07:00
Natalie
432670469d feat(@projects/@cocottetech): add cockpit and content asset endpoints
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 06:11:36 -07:00
Natalie
5b324d3b0c feat(@projects/@cocottetech): add content drop creation endpoint
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 06:07:15 -07:00
Natalie
4a5a3d827d feat(@projects/@cocottetech): implement specialist and metrics fetching
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 05:17:33 -07:00
Natalie
66a79ce47f feat(@projects/@cocottetech): enhance asset loading with native image support
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 05:08:49 -07:00
Natalie
c7a58ae9d9 feat(@projects/@cocottetech): add ingestion status control api
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 04:57:16 -07:00
Natalie
c6fbf43c82 test(@projects/@cocottetech): 🧪 update test coverage for new cockpit features
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 04:48:10 -07:00
Natalie
a26a845e16 feat(@projects/@cocottetech): add auto-refresh lifecycle to cockpit model
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 03:30:19 -07:00
Natalie
7e41d07988 feat(@projects/@cocottetech): add platform api client and models integration
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 02:12:53 -07:00
Natalie
23de9bd97b feat(ai-copilot): add live connection state tracking
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:17:07 -07:00
autocommit
852107c82c chore(ai-copilot): 🔧 Update iOS build toolchain config for AI copilot signing and targets
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:02:47 -07:00
autocommit
4686c64b5a feat(ingestion-specific): Implement ingestion service, DTOs, entities, and database migration for state-tracking content ingestion
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:02:47 -07:00
autocommit
33eb7565e1 feat(cockpit-kit): Add AssetLibraryView UI and IngestStatus tracking logic with test coverage
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 01:02:47 -07:00
autocommit
763d57c1b8 feat(worktree-specific): Add logic to detect uncommitted changes and mark worktrees as dirty
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:28:09 -07:00
autocommit
6fbee96d1c chore(ai-copilot): 🔧 Update iOS SDK/build tool settings in ios-tools.config.json for AI copilot feature
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:11:17 -07:00
autocommit
562a69c3e0 chore(content-ingestor): 🔧 Update deployment scripts and configs for new targets and environments
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:11:17 -07:00
autocommit
b8f9405354 deps-upgrade(cockpit-kit): ⬆️ Update cockpit-kit dependencies and test infrastructure for AI copilot compatibility
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:11:17 -07:00
autocommit
0f22bd1ee2 refactor(content-ingestor): ♻️ Replace HTTP-based object reading with MinioObjectReader for performance and storage efficiency in content-ingestor
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:11:17 -07:00
autocommit
07b9e05902 docs(content-ingestor): 📝 Add environment variable examples in .env.example for the content-ingestor feature
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:11:17 -07:00
autocommit
75eb6304f6 deps-upgrade(content-ingestor): ⬆️ Update dependencies in content-ingestor to latest compatible versions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-08 00:11:16 -07:00
Natalie
d6724e370e feat(@projects/@cocottetech): add cockpit-kit dependencies
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 23:10:05 -07:00
autocommit
77c644b432 deps-add(ai-copilot): Add AI copilot service dependencies and update platform-api-client/platform-models
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 23:00:31 -07:00
autocommit
27311b5128 chore(ai-copilot): 🔧 Update iOS frontend config for AI copilot integration with App.swift and ios-tools.config.json changes
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-07 23:00:31 -07:00