Commit Graph

  • b53eabb786 feat(modules): lexical import resolver — seal imports to defining node (Phase 4b C3) MechaCat02 2026-06-26 07:22:25 +02:00
  • 1844bef132 feat(executor): thread the defining node into ExecRequest (Phase 4b C2) MechaCat02 2026-06-26 07:17:33 +02:00
  • 7fef098b48 feat(modules): owner-aware module lookup — lexical chain walk (Phase 4b C1) MechaCat02 2026-06-26 07:07:04 +02:00
  • 3ef3038eb7 test(cli): project-tree journeys + Phase 5 docs MechaCat02 2026-06-25 22:43:20 +02:00
  • 1662d7806a feat(cli): nested-manifest discovery + pic plan/apply --dir tree mode (Phase 5 C4) MechaCat02 2026-06-25 22:25:29 +02:00
  • 8a559ea178 feat(apply): atomic project-tree apply with cross-node inherited binding (Phase 5 C3) MechaCat02 2026-06-25 22:18:07 +02:00
  • da03fda1d6 feat(cli): [group] manifest + pic plan/apply for a group node (Phase 5 C2) MechaCat02 2026-06-25 21:57:58 +02:00
  • 65049a6262 feat(apply): owner-generic apply engine — group-node plan/apply (Phase 5 C1) MechaCat02 2026-06-25 21:46:52 +02:00
  • 99e7100f0b fix(apply): resolve inherited-bound triggers in diff, state-token, and prune MechaCat02 2026-06-25 21:11:59 +02:00
  • 9598db149b docs: record Phase 4-lite (group-owned scripts) as shipped, live-resolved MechaCat02 2026-06-25 20:44:51 +02:00
  • c29e4b9c53 test(cli): journey for group-script inheritance, CoW, isolation + apply binding MechaCat02 2026-06-25 20:42:35 +02:00
  • 701ec90b56 feat(apply): declaratively bind routes/triggers to inherited group scripts MechaCat02 2026-06-25 20:32:24 +02:00
  • 719a17432f feat(scripts): inherited resolution for invoke() + chain-aware dispatch guards MechaCat02 2026-06-25 20:23:07 +02:00
  • 43ed4e8e7f feat(scripts): group-owned script admin API + pic scripts … --group MechaCat02 2026-06-25 20:10:20 +02:00
  • 48178c5f60 feat(scripts): polymorphic script owner (app XOR group) — Phase 4 foundation MechaCat02 2026-06-25 19:53:05 +02:00
  • 27dc04819f test(cli): journey for declarative app-var reconciliation MechaCat02 2026-06-25 08:06:44 +02:00
  • 181622a84a feat(cli): pic pull exports an app's own vars into [vars] MechaCat02 2026-06-25 08:03:26 +02:00
  • 34dcae98a2 feat(cli): declare app vars in the manifest + plan/apply them MechaCat02 2026-06-25 07:40:36 +02:00
  • e517f6dc8c feat(apply): reconcile app-owned vars in the declarative engine MechaCat02 2026-06-25 07:35:12 +02:00
  • b2822c8435 Merge: groups Phase 3 — group-inherited config (vars + group secrets) MechaCat02 2026-06-25 07:19:08 +02:00
  • b46667c309 docs: reconcile the groups/project-tool initiative into the roadmap feat/groups-phase3 MechaCat02 2026-06-25 07:12:25 +02:00
  • ca360d84cb docs(design): record Phase 3 shipped + the live-resolution decision MechaCat02 2026-06-24 22:53:58 +02:00
  • 79f8c9d420 test(cli): refresh stale deploy + logs journey assertions MechaCat02 2026-06-24 22:37:36 +02:00
  • bb68e5e50a fix(secrets): composite keyset for group-secret admin list pagination MechaCat02 2026-06-24 22:13:00 +02:00
  • 11ac168839 test(secrets): group-secret inheritance + masked-read journeys MechaCat02 2026-06-24 22:09:14 +02:00
  • 30441549d5 feat(cli): pic secrets --group, value read, and effective vars/config MechaCat02 2026-06-24 22:00:32 +02:00
  • c914758c09 feat(secrets): group-secrets admin API, masked read, config/effective MechaCat02 2026-06-24 22:00:32 +02:00
  • e6b4792389 feat(secrets): group-owned, env-scoped secrets + inherited resolution MechaCat02 2026-06-24 21:48:33 +02:00
  • b588fc9d35 fix(config): same-level @E config suppresses * instead of merging it MechaCat02 2026-06-24 21:32:15 +02:00
  • 6bd0f4699d feat(secrets): owner-discriminated AAD (SecretOwner) for group secrets MechaCat02 2026-06-24 21:17:18 +02:00
  • 9ee85993d8 feat(vars): admin CRUD API + pic vars CLI MechaCat02 2026-06-24 21:11:46 +02:00
  • 343f6d3b4d feat(vars): VarsService + vars:: SDK + config capabilities MechaCat02 2026-06-24 20:59:23 +02:00
  • 35dbd9f368 feat(config): vars schema + the §3 resolution engine MechaCat02 2026-06-24 20:43:16 +02:00
  • 6db057fb08 Merge: groups Phase 2 — org/RBAC/UI container (migration 0047) MechaCat02 2026-06-24 20:26:21 +02:00
  • 49c4fb41ce docs(design): mark Phase 2 (groups) shipped + record decisions/deferrals feat/groups-phase2 MechaCat02 2026-06-24 20:16:29 +02:00
  • 8725939172 feat(dashboard): group tree, detail page, and members tab MechaCat02 2026-06-24 20:15:44 +02:00
  • eea1d8984e feat(cli): pic groups (tree/create/rename/reparent/rm/members) MechaCat02 2026-06-24 20:15:33 +02:00
  • a432091191 feat(groups): tree repos, hierarchy-aware RBAC, admin API MechaCat02 2026-06-24 19:59:00 +02:00
  • 2b27012f56 feat(groups): schema + root-group backfill (migration 0047) MechaCat02 2026-06-24 19:58:48 +02:00
  • c900ca5bbf Merge: declarative project-tool foundation (Phase 1) + enabled lifecycle MechaCat02 2026-06-24 19:17:36 +02:00
  • 695987d6b7 docs(design): record async disabled-execution + cross-app backstops fix/project-tool-review MechaCat02 2026-06-24 19:06:52 +02:00
  • d4b5632db1 style(email): wrap over-width lines (cargo fmt) MechaCat02 2026-06-24 19:06:52 +02:00
  • 345f265062 fix(cli): env-aware config, pull clobber guard, strict overlays, 409 hint MechaCat02 2026-06-24 19:06:45 +02:00
  • aa3995ae05 fix(apply): reject reserved module names in validate_bundle (parity) MechaCat02 2026-06-24 19:06:29 +02:00
  • a27863d4a6 fix(dispatcher): close disabled-execution + cross-app gaps on the async paths MechaCat02 2026-06-24 19:06:21 +02:00
  • b3f05dfe2a fix(enabled): close disabled-script execution on the async paths (review) MechaCat02 2026-06-23 21:59:50 +02:00
  • 5e62f4acfe docs(design): mark Phase 1 shipped + record decisions/deferrals MechaCat02 2026-06-23 21:20:32 +02:00
  • 73c8c289c1 feat(triggers): surface name on the Trigger model (§4.5, step B-1) MechaCat02 2026-06-23 21:17:52 +02:00
  • 816f143ffd feat(triggers): add name column + backfill (§4.5, schema step) MechaCat02 2026-06-23 21:09:22 +02:00
  • 2ba476aac8 feat(cli): env-scoped overlays — --env merges picloud.<env>.toml MechaCat02 2026-06-23 20:58:04 +02:00
  • 79153b2063 feat(cli): pic config --effective (masked secret resolution) MechaCat02 2026-06-23 20:54:46 +02:00
  • 9e1c24f729 test(enabled): end-to-end route-disable journey MechaCat02 2026-06-23 20:48:04 +02:00
  • 8c805a07d0 feat(enabled): apply-time reachability warning + end-to-end journey MechaCat02 2026-06-23 20:10:13 +02:00
  • bfab7c781d feat(enabled): dispatcher fire-time re-check for disabled triggers/scripts MechaCat02 2026-06-23 19:48:56 +02:00
  • 4223d3c320 feat(enabled): runtime honoring for disabled scripts and routes MechaCat02 2026-06-23 19:42:45 +02:00
  • 55cf995eda feat(enabled): scripts/routes enabled column + declarative data path MechaCat02 2026-06-23 19:36:40 +02:00
  • 627996cde7 fix(project-tool): address independent review of init + staleness MechaCat02 2026-06-22 22:07:31 +02:00
  • be5df06a48 feat(project-tool): bound-plan staleness check (content fingerprint) MechaCat02 2026-06-22 21:48:27 +02:00
  • b8a4f30219 feat(cli): pic init scaffolds a new declarative project MechaCat02 2026-06-22 21:32:07 +02:00
  • d9b3e9973c fix(project-tool): address review findings on the apply foundation MechaCat02 2026-06-22 21:18:51 +02:00
  • 3b650a2b14 feat: declarative project-tool foundation (pull/plan/apply/prune) feat/project-tool-foundation MechaCat02 2026-06-20 21:52:21 +02:00
  • c600177fd6 docs(design): groups & declarative project-tool spec MechaCat02 2026-06-20 21:52:01 +02:00
  • 05ea29fbd0 docs: add comprehensive developer guide (mdBook) docs/developer-guide MechaCat02 2026-06-20 13:54:23 +02:00
  • 51f14fa2b1 feat: E2E #2 (Stash) gap remediation + S6 hardening fix/e2e-stash-gaps docs/groups-and-project-tool MechaCat02 2026-06-13 15:01:04 +02:00
  • a91b134285 fix(review): harden the E2E-gap fixes after security/regression review fix/e2e-todo-gaps MechaCat02 2026-06-13 09:59:24 +02:00
  • 30bad27711 docs(e2e): record second CLI-only attempt — all gaps verified closed MechaCat02 2026-06-13 09:59:11 +02:00
  • b83113846f docs: stdlib envelope/replace notes + dev-insecure-key (S2, S3, O1) MechaCat02 2026-06-12 20:43:26 +02:00
  • 7ffbb8de87 feat(sdk): users::email_available for anonymous registration pre-check (S1) MechaCat02 2026-06-12 20:43:18 +02:00
  • ae2134e62d feat(executor): expose ctx.request.method to scripts (F4) MechaCat02 2026-06-12 20:43:10 +02:00
  • 04a24ea0b7 feat(cli): close E2E To-Do CLI gaps (B1, B2, F2, F1, F3) MechaCat02 2026-06-12 20:43:03 +02:00
  • 50db27806b docs(audit-2026-06-11/tier3): handback + independent review artifacts MechaCat02 2026-06-12 19:09:37 +02:00
  • dd9d828018 docs(audit-2026-06-11/tier3): fix stale principal_cache field comment MechaCat02 2026-06-12 19:08:31 +02:00
  • ec4a2aa24a style: cargo fmt across audit-2026-06-11 tier-3 changes MechaCat02 2026-06-12 18:38:28 +02:00
  • e8cc3afa07 fix(audit-2026-06-11/H-B1 follow-up): use last X-Forwarded-For hop for login rate-limit key MechaCat02 2026-06-12 18:37:34 +02:00
  • bdcc9a606d fix(audit-2026-06-11/H2): reject inline CLI secrets; true no-echo prompt MechaCat02 2026-06-12 18:34:45 +02:00
  • 3ac1022c33 fix(audit-2026-06-11/H-1): request-body ceilings (Caddy proxy + email-inbound webhook) MechaCat02 2026-06-12 18:29:55 +02:00
  • d9fb0e7f85 fix(audit-2026-06-11/F-FS-002): belt-and-suspenders collection validation on files read/delete MechaCat02 2026-06-12 18:26:46 +02:00
  • e676eb9ba7 fix(audit-2026-06-11/F-SE-H-04): scrub runtime error detail from public data-plane responses MechaCat02 2026-06-12 18:23:58 +02:00
  • 95fddf31bc fix(audit-2026-06-11/C-2+F-SE-H-03): reject control chars in content-type; disable Rhai debug MechaCat02 2026-06-12 18:14:36 +02:00
  • 31ecfae86e fix(audit-2026-06-11/revocation-lag): evict PrincipalCache on credential change MechaCat02 2026-06-12 18:12:54 +02:00
  • 19f3647f0e test(audit-2026-06-11): fix status-code + rotted /version assertions MechaCat02 2026-06-12 17:27:37 +02:00
  • 513c4a2d3c fix(audit-2026-06-11/H-D1): bind AES-GCM AAD on secrets + realtime signing key MechaCat02 2026-06-12 17:15:09 +02:00
  • 34c63f31be fix(audit-2026-06-11/H-H1): rate-limit email::send + per-message recipient cap MechaCat02 2026-06-11 20:54:34 +02:00
  • 8b5a02b3ef fix(audit-2026-06-11/H-B2): inbound_secret mandatory + bad-signature lockout on email triggers MechaCat02 2026-06-11 20:49:31 +02:00
  • 07ffc0b568 fix(audit-2026-06-11/H-B1): login rate limit + Argon2 concurrency cap MechaCat02 2026-06-11 20:42:51 +02:00
  • bd64a25c97 fix(audit-2026-06-11/H-F1): dispatcher same-app guards on queue + HTTP arms MechaCat02 2026-06-11 20:36:33 +02:00
  • 2af8ee49ba fix(audit-2026-06-11/H-E1): password change invalidates sessions + API keys MechaCat02 2026-06-11 20:35:02 +02:00
  • 99eb0025fa fix(audit-2026-06-11/H-C1): engine.on_progress deadline check terminates runaway scripts MechaCat02 2026-06-11 20:33:01 +02:00
  • 9067225945 fix(audit-2026-06-11/H-A1+A2+A3+M07-06+07+08+09): Caddy security-header layer MechaCat02 2026-06-11 20:27:47 +02:00
  • fde4796479 fix(audit-2026-06-11/C-2): file download attachment + nosniff + CSP + MIME allowlist MechaCat02 2026-06-11 20:24:55 +02:00
  • b096ea9c4e fix(audit-2026-06-11/C-1): drop cookie auth on /api/v1/admin/* MechaCat02 2026-06-11 20:18:55 +02:00
  • 285a76f2e2 refactor(manager-core): single source for executor-timeout default MechaCat02 2026-06-11 17:42:20 +02:00
  • e33a551ad5 fix(manager-core): visibility-timeout warn threshold tracks live env budget MechaCat02 2026-06-11 17:36:46 +02:00
  • b0f7b72dd6 fix(review): close 5 follow-up gaps from Stage 6 audit re-review MechaCat02 2026-06-11 17:20:34 +02:00
  • 05ed9b00bb fix(stage-6): dashboard hardening + audit Lows cherry-pick MechaCat02 2026-06-10 21:50:58 +02:00
  • 24490d5ddb feat(cli): add pic triggers + dead-letters + secrets subcommands MechaCat02 2026-06-10 21:41:57 +02:00
  • 59645e8159 feat(cli): add pic routes + pic admins subcommands MechaCat02 2026-06-10 21:35:09 +02:00
  • 649246213e fix(stage-3): queue DL fan-out + emit-failure visibility MechaCat02 2026-06-10 21:22:15 +02:00
  • f466b2a15e fix(stage-2): audit dashboard TS alignment + login UX MechaCat02 2026-06-10 21:09:53 +02:00
  • 3c9816daf3 fix(stage-1): audit High-severity backend correctness + CI unblocker MechaCat02 2026-06-10 21:03:10 +02:00