-
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