be-coder-08
f4b162fa5c
feat(pr-merge): preserve linked co-authors on squash
ci/woodpecker/pr/ci Pipeline was successful
2026-08-05 18:20:16 -05:00
be-coder-08
abe9dbb5c1
test(pr-merge): register message field contract
2026-08-05 17:31:54 -05:00
be-coder-08 and Mos
85d2108e4e
fix(ci): remove upgrade rollback signal race ( #1060 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: be-coder-08 <[email protected] >
2026-08-05 22:14:15 +00:00
be-coder-08 and Mos
16f91157a1
test(ci): make queue guard harness deterministic ( #1062 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: be-coder-08 <[email protected] >
2026-08-05 21:49:44 +00:00
coder-mos1 and mos-dt-0
5916aeefd6
chore(release): @mosaicstack/mosaic 0.0.49 — ship RM-03 guard fix to release channel ( #1036 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline failed
Co-authored-by: coder-mos1 <[email protected] >
2026-08-02 20:09:11 +00:00
coder-mos1 and mos-dt-0
58b971aba3
fix(rm-03): make CI queue guard fail on asserted non-readiness ( #1032 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: coder-mos1 <[email protected] >
2026-08-01 18:55:26 +00:00
coder-mos1 and mos-dt-0
f4fd5967fc
RM-61: prove ci-postgres teardown discrimination ( #1033 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: coder-mos1 <[email protected] >
2026-08-01 14:54:04 +00:00
mos-dt-0 and Mos
f65e9ea656
docs(remediation): mission-state snapshot at the RM-01 seam ( #1028 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: mos-dt-0 <[email protected] >
2026-08-01 01:08:11 +00:00
mos-dt-0 and Mos
f58b3699a6
RM-01: reproducible checkout — the pre-push gate fails on code, not environment ( #1027 )
...
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: mos-dt-0 <[email protected] >
2026-08-01 00:50:12 +00:00
mos-dt-0 and Mos
01e966f36d
docs(remediation): mission charter + reconciled execution backlog ( #1026 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-31 22:47:03 +00:00
mos-dt-0 and Mos
524146055d
fix(hygiene): .prettierignore must exclude Python build/test artifacts ( #1025 )
...
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-31 22:24:49 +00:00
mos-dt-0 and Mos
06e0d40352
feat(quality): CI test-membership guard — enumeration can no longer silently under-run the disk ( #1017 ) ( #1018 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-31 14:08:41 +00:00
Mos
166ee8c90f
fix(wake): close fd 9 in the detector's sleep child so a dead detector's lock dies with it ( #993 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-31 13:48:33 +00:00
mos-dt-0 and Mos
826a8b3b26
fix(git): pr-review.sh — surface the provider's stated reason, drop the hardcoded #865 attribution ( #1006 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-31 10:52:58 +00:00
mos-dt-0 and Mos
a4280b9c98
fix(wake): #984 fatal source guard + #985 absorb re-scan — #973 follow-up batch ( #1001 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-31 10:16:22 +00:00
Mos
4fb44f6345
fix(wake): three-valued grep verdicts — has_match/count_lines across all ten suites ( closes #973 ) ( #983 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-31 08:39:04 +00:00
Mos
089615f63b
feat(git): push-guard — refuse verifications satisfied by the null case ( closes #975 ) ( #974 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-31 03:35:24 +00:00
mos-dt-0 and Mos
76eef39a29
docs(wake): #953 dead-letter retention recorded as load-bearing at the write site ( #968 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Closes #953 .
GATE RECORD: review CLEAR at this exact head (author != reviewer, pre-registered diff-blind checks) + terminal-green CI at this exact head + queue guard clear.
CI CAVEAT (#973 ): green on the wake suites is currently WEAKER THAN IT LOOKS, IN BOTH DIRECTIONS. grep error/spawn exit codes are read as absence across 257 assertion sites in six idiom forms; 36 inverted (&&-fail) sites — including 19 credential-security canaries — fail toward GREEN under load. These greens were obtained on solo reruns after load-correlated FALSE reds (2115/2116/2118; main itself was red). This merge's safety therefore rests on the CONTENT review, not on the green. Remediation charter fa551c2d0 is authored and in flight.
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-30 23:25:38 +00:00
mos-dt-0 and Mos
47f8689231
fix(wake): #952 quarantine-audit clean sweep names BOTH unprovable residual classes ( #967 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Closes #952 .
GATE RECORD: review CLEAR at this exact head (author != reviewer, pre-registered diff-blind checks) + terminal-green CI at this exact head + queue guard clear.
CI CAVEAT (#973 ): green on the wake suites is currently WEAKER THAN IT LOOKS, IN BOTH DIRECTIONS. grep error/spawn exit codes are read as absence across 257 assertion sites in six idiom forms; 36 inverted (&&-fail) sites — including 19 credential-security canaries — fail toward GREEN under load. These greens were obtained on solo reruns after load-correlated FALSE reds (2115/2116/2118; main itself was red). This merge's safety therefore rests on the CONTENT review, not on the green. Remediation charter fa551c2d0 is authored and in flight.
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-30 23:25:34 +00:00
mos-dt-0 and Mos
8d1d6e5e76
feat(wake): #958 A11 preimage.sh — durable provenance for the operator-side preimage definition ( #964 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Closes #958 .
The preimage definition (source-adapter.sh) is the single most consequential file in the wake pipeline — every observed_hash is a sha256 of what it emits — and it was UNVERSIONED: no git history, no backup. When it was edited at 07:27 on 2026-07-30, attribution was recoverable only because an agent transcript happened to still be on disk. A11 gives that file durable provenance (option (2) of #958 : recorded content-addressed, not in-band).
DESIGN, per the pre-registration:
- Provenance is OUT-OF-BAND (never on the adapter's stdout) — an in-band record would advance observed_hash for every source at once and manufacture the re-baseline it exists to explain (B3).
- The obligation never depends on the provenance path: a missing/corrupt store cannot halt the detector or swallow a wake (#940 advisory-fields precedent; B4).
- DESC_FMT=d1 is NOT the provenance record — the tag versions the descriptor FORMAT; a behaviour change that keeps descriptor shape re-baselines every hash and leaves the tag unchanged (B6).
CREDENTIAL HARD GATE (rebuilt after the first verdict FAILED it): byte capture is now RECORD-ONLY BY DEFAULT (extras opt in via WAKE_PREIMAGE_CAPTURE), not allow-by-default-refuse-on-shape — because a shape list can only refuse the secrets someone already enumerated, and the tool's own usage text recommended adding detector.env (where HMAC material lives). Deny is evaluated on BOTH raw and resolved path forms with resolved anchors, ordered before allow — closing the realpath-before-deny ordering defect that let a renamed symlink target through.
VERIFICATION (reviewer, mos-dt, independent of the author's claims):
- Seven decoy cases by planted-marker-then-grep-whole-state-dir: known cred path / same-name symlink / RENAMED-target symlink / prefixed secret / prefixless secret / opted-in-symlink-to-DENIED-target all REFUSED; opted-in-symlink-to-ALLOWED-target CAPTURED (positive control that the harness can capture at all, and that C was not closed by breaking every symlink).
- Polarity-completeness self-test RE-RUN with the shape list stubbed always-allow AND both deny lists stubbed — case D still safe: the flip is complete, the shape list is not load-bearing. Each stub proven live first (a stub that silently fails to apply reports the dangerous state as safe).
- B11: rm-then-change fails LOUD (rc=1), refuses to re-baseline, leaves the ledger absent; absent-with-emptied-objects still first-installs cleanly (absent-is-not-corrupt not paid for by breaking first install).
- RED-first reproduced exactly P13-P16 pre-fix; each refusal corroborated three ways (loud stderr, ledger row captured:false WITH a hash so attribution survives refusal, objects/ holding only the adapter).
KNOWN RESIDUAL (filed #969 , non-gating): the deny check is both-forms but the suite needles only the resolved form — a deny reduced to resolved-only survives 17/17 green and would leak a renamed-symlink case. No reachable leak at this head (shipped code correct on all seven decoys); it constrains a FUTURE edit. Doctrine: a both-forms fix needs a needle per form; a fixture that satisfies its assertion through a DIFFERENT rule is testing the rule it did not mean to test.
Authored by pepper (sb-it-1-dt); independently reviewed by mos-dt (sb-it-1-dt) under diff-blind pre-registration (7242688b1, predating first read) — NOT CLEAR on the first verdict (B2/B11 failed by decoy), CLEAR at 8aff7d8 after the polarity rebuild. Manifest version 0.7.0.
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-30 21:48:06 +00:00
mos-dt-0 and Mos
6a7fce34bb
fix(wake): #946 digest ack watermark clamped at quarantined seqs — disclose AND clamp ( #951 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Closes #946 .
The digest omitted a quarantined entry's claim from disclosure while still advancing the ack watermark it instructed the consumer to run — converting a fail-safe HOLD into a silent DISCARD, through the documented normal path. Measured: the burial instruction was re-issued FIVE times, four fresh digests plus one system-initiated redelivery fired purely because the entry had gone unconsumed for 1826s. That redelivery is the proof of the 'indefinitely' half: the mechanism re-asserted itself with no new information.
SCOPE — this was NOT a missing check in the consume path. Measured before the fix: dead-letter occurrences were digest.sh 27, store.sh 0, ack.sh 0, detector.sh 0, reconcile.sh 0. Quarantine was owned ENTIRELY by the renderer; the store that advances the watermark had zero knowledge the ledger existed, so an entry could be quarantined by one subsystem and consumed by another with no possible interaction. The fix is therefore a deliberate cross-module decision — option (b), quarantine recorded into a store-owned file, preserving the existing direction of dependency — pre-registered by the consumer before any diff existed.
VERIFICATION
- Pipeline 2107 terminal SUCCESS at e11bc6622 , read clone-inclusive from the provider API rather than through `pipeline-status.sh` (which filters `.type != "clone"` per workflow and would hide a clone failure behind an all-green table): 9/9 children success, exit 0 each, no non-success member. Its `test` step runs all nine wake harnesses via turbo -> packages/mosaic `test` -> `test:framework-shell`.
- Independent review by the consumer on the affected lane: eleven pre-registered acceptance checks, authored and delivered BEFORE the diff was read — the file list deliberately unlooked-at, because a filename alone would have disclosed which option was chosen. All eleven resolved, no blocker.
- The check that decides it: a RAW `ack.sh consumed --upto N` with no digest involved must refuse to advance past a quarantined seq — the case an agent hits when a digest is MISSED, and the one that would have sunk a disclosure-only fix. Covered at the head as a named assertion (T13 ordinary-path bypass), written independently of the reviewer's list.
- Mutation: one asserted site disabled -> TWELVE assertions die, every one BEHAVIOURAL, ZERO count assertions, including one killing across the module boundary the fix spans.
- RED control at base a6b5f6a : 34 and 10 assertions fail, matching the body exactly.
- Coordinator re-verify by a different instrument than the reviewer used: static reference counts across the base/head boundary — store.sh 0 -> 49, ack.sh 0 -> 6, `--agent` unchanged at 4 (so #949 correctly stayed out). A fix present-but-inert passes the count and fails the mutation; a fix behaviourally correct but smuggling #949 passes the mutation and fails the count. Neither result is reachable by repeating the other.
KNOWN RESIDUALS
- The `consumed-hashes` repair criterion is met only for keys that RE-EMIT. A corrupted row whose key never recurs stays false indefinitely; the sweep covers those, and the known-false row named in the acceptance criteria had already self-healed by re-emission rather than by design — safe by population, not by design.
- The audit's clean-sweep message names one unprovable class; a second exists (a surviving dead-letter row with an empty `observed_hash` cannot be convicted either). Wording, not logic. Filed separately.
- The audit's provability bound makes dead-letter RETENTION load-bearing for auditability. Nothing prunes it today, so this is latent — but any future rotation or size cap silently converts provable rows into unprovable ones with no signal at either end. This is not a defect; it is a property that BECAME load-bearing and is recorded nowhere. Filed separately.
- `test-wake-detector.sh` D4 fails at this head AND identically at base, with an empty diff over detector files — pre-existing, tracked, not introduced here.
Authored by pepper (sb-it-1-dt); reviewed independently by mos-dt (sb-it-1-dt). The mos-dt-0 commit and fork identity does not identify the author — attribution collapse tracked separately.
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-30 15:41:03 +00:00
mos-dt-0 and Mos
a6b5f6a01a
fix(wake): #944 path becomes a hard-locator arm — detector-shape actionable entries pass the §2.1 gate ( #945 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Closes #944 .
_has_hard_locator accepted only repo+issue / 40-hex sha / file — the forge vocabulary. The detector emits path (+snapshot_sha when attested) and NEVER emits file/issue/sha, so predicate and sole producer shared ZERO keys and every class=actionable board_file entry dead-lettered. Latent since #920 , whose harness pinned the detector's own emission shape as its malformed example — the suite certified the gap it was written to guard.
Fix: `path` becomes a hard-locator arm, and ONLY path. Bare path-less snapshot_sha is a deliberate NON-arm (would widen past the board_file vocabulary); Q11(d) asserts it still quarantines at 7/40/64 chars, spanning the detector's ^[0-9a-f]{7,64}$ attestation range.
VERIFICATION
- Pipeline 2105 terminal-green at fa36da8 . Its `test` step reaches all nine wake harnesses via turbo -> packages/mosaic `test` -> `test:framework-shell`, which names each suite explicitly. The two-levels-down indirection matters: no search of .woodpecker/* can see it, and that is exactly why this question was got wrong earlier today and then corrected. CI therefore DOES attest the quarantine suite and the detector suite at this head.
- Independent review (mos-dt, consumer on the affected lane) PASS at fa36da8 , from a detached worktree: predicate provably unmoved from fb3c3c3 (comment-stripped sha256 identical, _has_hard_locator body byte-identical), RED control at base reproduced exactly 8 failures all Q11 including "got 6".
- Third reviewer (wake-judge) ACCEPT on both judgment calls: the Q1 assertion reversal is a legitimate correction (the flip was forced, not elective — base fixtures red 19 assertions against the head predicate) and path-alone satisfies §2.1, whose operative test is "one targeted call, never a search" — two of its four named exemplars already resolve to current state. Requiring path+snapshot_sha jointly would permanently dead-letter a declared source class and conflict with #940 's advisory-fields ruling.
- Judge's mutation criterion met: with the reconciled exemption disabled, the gate-level assertion ("an ORIENTATION-tier enumeration must NOT be quarantined") dies at this head and did not exist as a casualty before F1.
- D4 (detector lock re-acquisition) fails intermittently at base AND head; git diff base..head over the detector files is EMPTY, so it is out of this PR's surface on structural grounds rather than on a re-roll. Known defect, fix identified (detector.sh:516, fd 9 leaked into sleep), tracked separately.
KNOWN RESIDUALS
- ENUM-B is now the sole address-free reconciled fixture, so the exemption's gate-level guard is a population of one. Safe by population, not by design. Author follow-up: assert ENUM-B carries no hard-locator arm so the harness guards its own premise.
- The binding spec (CONVERGED-DESIGN.md §2.1, separate repo) still enumerates four forge tokens and reads narrower than the shipped gate. Tracked as #948 , sequenced after the dragon-lin reseed.
- Hard-locator arms are type-loose: repo/file/path accept any non-null JSON value. Pre-existing; `sha` fails closed only by accident of test(). Tracked separately.
Authored by pepper (sb-it-1-dt); reviewed independently by mos-dt (sb-it-1-dt) and wake-judge. The mos-dt-0 commit/fork identity does not identify the author — attribution collapse tracked in #3092 .
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-30 14:01:48 +00:00
mos-dt-0 and Mos
539b475a92
fix(wake): #943 whole-string validation for WAKE_SNAPSHOT_TS_FUTURE_SLACK + version 0.6.13
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
grep is line-oriented, so a multi-line knob value passed the per-line anchors and was still fatal in arithmetic. Replaced with a case pattern matching the whole string, so an embedded or leading newline rejects. Manifest bumped 0.6.12 -> 0.6.13: three materially different detectors had shipped under one version string, and version= is the component sole self-identity claim.
Authored-by: pepper
Reviewed-by: mos-dt (independent, at this head; transfer proven by blob-hash equality)
Merged-by: Mos
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-30 11:56:18 +00:00
mos-dt-0 and Mos
3e47fc076f
fix(wake): #942 harden WAKE_SNAPSHOT_TS_FUTURE_SLACK — validate shape AND force base-10
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
The slack knob was interpolated raw into $((...)) under set -u: a malformed value was FATAL to the poll, falsifying the poll-never-fails invariant, and a negative value inverted the guard to deny-all. Shape validation alone was insufficient — bash reads a leading zero as octal, so 08/09 passed the regex yet were fatal and 0300 silently meant 192. Now validated ^[0-9]{1,9}$ with a loud fallback to 300, then forced to base-10 via 10# so the knob means what the operator wrote.
Authored-by: pepper
Reviewed-by: mos-dt (independent, found both the original defect and the radix residual)
Merged-by: Mos
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-30 11:17:51 +00:00
mos-dt-0 and Mos
8710d0f6d7
feat(wake): #940 snapshot-datable digests — fd-3 snapshot-metadata channel ( #941 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Adapter emits snapshot sha/ts out-of-band on fd 3 so a changing value never enters the delta-gate hash. Detector validates advisorily (sha regex, epoch sanity before arithmetic, future-skew slack); malformed metadata is dropped loudly and never gates the wake. Digest renders snapshot_sha/snapshot_ts plus a git-show re-verify hint. Adapters that never write fd 3 are byte-identical.
Reviewed-by: Mos (design, independent)
Reviewed-by: mos-dt (artifact, hardening §2)
Co-authored-by: mos-dt-0 <[email protected] >
2026-07-30 10:55:18 +00:00
jason.woltje and Mos
b981b4ec10
fix(wake): #934 mount-free, privilege-invariant seq-integrity fault injection (T9/T11 run in non-priv CI) ( #936 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 16:34:58 +00:00
jason.woltje and Mos
9e81ffd7fc
fix(wake): #932 stop reconciler re-enumerating already-CONSUMED detector state ( #935 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 15:48:40 +00:00
jason.woltje and Mos
9becaf877f
fix(wake): #917 gate the final observed_seq cursor write + observed.set/cursor consistency (defense-in-depth) ( #933 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 15:14:38 +00:00
jason.woltje and Mos
17087efe15
fix(wake): #925 framework-ship canon fallback-wake (systemd timer + schema bound + A10 install/validate) — F7 out of the box ( #931 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 13:44:51 +00:00
jason.woltje and Mos
0ea41e848b
fix(wake): #913 installer adoption gaps — _lib dep-check fail-loud + mosaic-wake.service systemd-search-path link+validate ( #930 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 12:37:29 +00:00
jason.woltje and Mos
347c1d57c1
fix(wake): #924 route dead-letter quarantine alarm via WAKE_ALARM_SINK_CMD with per-observed_seq dedup (G2a) ( #929 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 11:45:09 +00:00
jason.woltje and Mos
13e6ce5e5c
fix(wake): #927 enqueue TOCTOU — move stale-tmp cleanup off the hot enqueue path (no concurrent in-flight-write clobber) ( #928 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 10:56:40 +00:00
jason.woltje and Mos
90265ef550
test(wake): #923 de-flake T10 concurrent-enqueue race (deterministic barrier) ( #926 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 10:23:07 +00:00
jason.woltje and Mos
937a276208
fix(wake): #920 quarantine render-refused drain entry (no head-of-line block) + reconciler enumerations render orientation-tier (reconciled:true, render-tier not class=digest) ( #922 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 08:45:51 +00:00
jason.woltje and Mos
712c770b7a
fix(wake): #912 exercise the digest/HMAC trust suite in real CI (fix runner divergence + openssl + hard-require) ( #921 )
...
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 08:11:28 +00:00
jason.woltje and Mos
d967a4a926
fix(wake): #914 digest renderer — WAKE_AGENT-prefixed ack line + digest-class locator threading ( #916 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 07:13:07 +00:00
jason.woltje and Mos
c585ac3326
test(wake): #918 de-flake T7 ack-no-network-block (sub-second timing) ( #919 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 06:46:28 +00:00
jason.woltje and Mos
e2ec927b1c
fix(wake): #908 unify observed_seq on a single store-side allocator (dissolve detector-private-counter seam) ( #915 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 06:02:02 +00:00
jason.woltje and Mos
2378665eaf
feat(wake): W7 A10 idempotent installer + mosaic-wake.service (component-manifest, Gate-A, blank-reset retire, snapshot-guard, fail-closed install-validate) ( #911 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 04:19:09 +00:00
jason.woltje and Mos
003cdaa1a6
feat(wake): W6 — off-host dead-man beacon + pluggable alarm-sink adapter ( #910 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 02:30:28 +00:00
jason.woltje and Mos
320f5bfb6f
feat(wake): W5 — synthetic-canary FN-oracle + source-parity reconciler ( #909 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 02:04:19 +00:00
jason.woltje and Mos
5df47e735e
feat(wake): W4 — per-host delta-gated detector daemon (fail-loud source semantics, enqueues to W2 store) ( #907 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 01:04:55 +00:00
jason.woltje and Mos
dd1391fd76
fix(wake): digest hard-locator gate covers top-level .claim entries ( Closes #905 ) ( #906 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 00:58:40 +00:00
jason.woltje and Mos
10d957d095
feat(wake): W3 — cumulative-state digest renderer + non-circular HMAC signer ( #904 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-26 00:32:12 +00:00
jason.woltje and Mos
dc45eb7c30
feat(kbn): land KBN-101 Envelope A v6 (rc.20) — declarative sink-RBAC + RLS write-source (Form A) ( #902 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 23:58:18 +00:00
jason.woltje and Mos
28f022d9c0
feat(wake): W2 — three-cursor durable store + RECEIVED/CONSUMED ack-wrapper + watch-list schema ( #903 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 23:58:08 +00:00
jason.woltje and Mos
2726fab5e0
chore(framework): wire agent-send.test.sh into CI test:framework-shell (W1 follow-up) ( #901 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 23:23:24 +00:00
jason.woltje and Mos
ab6e8e80dc
fix(framework): send-message.sh fail-loud submission verdict + regression tests (Patch 6) ( #895 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 22:57:11 +00:00
jason.woltje and Mos
1933c6cb1d
feat(framework): accept digest message class in agent-send.sh (W1) ( #894 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 22:56:46 +00:00
jason.woltje and Mos
48a0c86093
fix(lease-broker): recovery_runtime_unittest wait_ready() connect-probe (co-equal CI flake, cherry-pick #898 ) ( #900 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 22:26:38 +00:00
jason.woltje and Mos
79c8647fd9
fix(lease-broker): wait_ready() polls real connect-readiness not socket-file existence (flaky CI race) ( #898 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 22:10:15 +00:00
jason.woltje and Mos
2483dada33
fix(framework): pr-review.sh -r/--repo + -H/--host overrides + UA + repo preflight (Patches 5/5c) ( #896 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 22:08:08 +00:00
jason.woltje and Mos
4c117afe03
docs(framework): add WAKE-DOCTRINE.md guide (W0) ( #893 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 21:57:51 +00:00
jason.woltje and Mos
2698ddb7b5
feat(comms): P1 presence — minimal Synapse + fleet presence room + mosaic.presence heartbeat + liveness ( #888 )
...
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 21:03:18 +00:00
jason.woltje and Mos
fabde1c834
docs(rfc): add RFC-001 (MACP/Matrix-native comms) + RFC-002 (install/config/topology) ( #886 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 21:02:54 +00:00
jason.woltje and Mos
3c7890f17f
fix(framework): detect-platform get_gitea_token fail-loud on absent per-slot token (Patch 2b) ( #890 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-25 20:51:19 +00:00
jason.woltje and Mos
529c177830
fix(update): mosaic update runs the install-ordering guard post-reseed ( #882 --sync-only bypass) ( #883 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 22:18:34 +00:00
jason.woltje and Mos
a32ce4c8f9
feat(869-c4): activation version-coupling assertion (Part of #869 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Part of #869
Mos (id-11) Gate-16 merge: independent APPROVE @90eb48fa (fail-closed identity locks byte-unchanged verified), author id2 != approver id11, clean mosaic-coder author, CI green wp1992. #869 Point-1 CODE COMPLETE (C1/C3/C5/C2/C4).
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 19:07:27 +00:00
jason.woltje and Mos
d351caad36
feat(869-c2): install-ordering enforcement-hook guard (Part of #869 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Part of #869
Mos (id-11) Gate-16 merge: independent APPROVE @b6f36564 (8/8, verified vs real production settings template), author id2 != approver id11, clean mosaic-coder author, CI green wp1988.
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 18:48:33 +00:00
jason.woltje and Mos
76b86a246e
feat(869-c5): mosaic doctor activation-check (Part of #869 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
Part of #869
Mos (id-11) Gate-16 merge: independent APPROVE @e75e3238 (8/8), author id2 != approver id11, clean mosaic-coder author, CI green wp1987.
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 18:38:21 +00:00
jason.woltje and Mos
4422231bdb
feat: per-agent Gitea identity resolution ( #873 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Closes #873
Mos (id-11) Gate-16 merge: independent APPROVE @4b472a22 (author-blocker dissolved via (a) re-author, identical tree hash to tech-approved head), author id2 != approver id11, clean mosaic-coder commit-author, CI green wp1985. Framework train COMPLETE 6/6.
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 18:09:34 +00:00
jason.woltje and Mos
8504216964
fix(pr-review): case-insensitive _belongs slug compare ( #875 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Closes #875
Mos (id-11) Gate-16 merge: independent APPROVE @9d8d58ae, author id2 != approver id11, clean mosaic-coder commit-author, CI green wp1982.
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 17:53:26 +00:00
jason.woltje and Mos
7edc9b3121
fix(gitea): direct REST comment/review with fail-closed read-back ( #865 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Closes #865
Mos (id-11) Gate-16 merge: fresh confirmatory independent APPROVE @8ac7e70f (1241-case fuzz 0 fail-open), author id2 != approver id11, clean commit-author, CI green wp1966.
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 17:25:32 +00:00
jason.woltje and Mos
2f50c0876b
feat(869-c3): lease-broker supervisor unit (Part of #869 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
Part of #869
Mos (id-11) Gate-16 merge: independent APPROVE @75235ef8 (9/9, no live host mutation), author id2 != approver id11, CI green wp1971.
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 17:19:48 +00:00
jason.woltje and Mos
db90da347e
feat(869-c1): activation-capability probe (Part of #869 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
Part of #869
Mos (id-11) Gate-16 merge: independent 3-round APPROVE @c5a2bcc5, author id2 != approver id11, CI green wp1973.
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 17:14:57 +00:00
jason.woltje and Mos
48fd1df28a
fix(ci-queue-wait): treat absent branch (404) as queue-clear ( #872 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
Closes #872
Mos (id-11) Gate-16 merge: independent review APPROVE @23cbdaf8, author jason.woltje(id2) != approver Mos(id11), CI green wp1974.
Co-authored-by: jason.woltje <[email protected] >
Co-committed-by: jason.woltje <[email protected] >
2026-07-23 17:08:57 +00:00
jason.woltje
b79336a8c1
feat(orchestrator): board-roll.sh — auto-roll LIVE board to LEDGER under byte cap ( #868 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
feat(orchestrator): board-roll.sh - auto-roll LIVE board to LEDGER under byte cap
Closes #868
2026-07-22 09:20:03 +00:00
jason.woltje
4e5af23214
Merge pull request 'skills: add glpi-* family (solve, followup, sweep, list, create)' ( #863 ) from feat/glpi-skills into main
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-21 01:09:50 +00:00
Hermes Agent
880c28b191
docs(glpi-skills): genericize operator-specific content per review
ci/woodpecker/pr/ci Pipeline was successful
2026-07-20 19:45:50 -05:00
Jason Woltje and Claude Opus 4.8
7bc2dfb6c8
skills: add glpi-* family (solve, followup, sweep, list, create)
...
ci/woodpecker/pr/ci Pipeline was successful
GLPI helpdesk workflow skills written against the portable
tools/glpi/ tooling (session-init.sh, ticket-list.sh, ticket-create.sh),
cross-linked via [[glpi-*]]:
- glpi-solve — close a ticket by setting status Solved (5); GLPI auto-closes
- glpi-followup — add a followup via the top-level /ITILFollowup endpoint
- glpi-sweep — read-only hunt for done-but-open tickets needing Solve
- glpi-list — query tickets by status/recency
- glpi-create — open a new ticket
Core rule encoded: completing work means setting status Solved, not just
posting a resolution followup (a followup documents; only Solved auto-closes).
Note: illustrative examples in the bodies are USC-flavored (M2M / helpdesk
ticket numbers) and can be genericized in review if preferred.
Co-Authored-By: Claude Opus 4.8 <[email protected] >
Claude-Session: https://claude.ai/code/session_019GjBgrb9tHgvq414Fqj37c
2026-07-20 18:04:53 -05:00
jason.woltje
b0d78d8632
fix(mosaic): de-flake mutator-class lease gate TTL-expiry test ( #861 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-20 10:32:45 +00:00
jason.woltje
344d86a635
fix( #812 follow-up): normalize detect-platform.sh host-match port comparison by scheme ( #859 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-20 10:13:29 +00:00
jason.woltje
acd7d380f6
fix(framework): install deps on worktree bootstrap + legible deps-preflight at gate seam ( #856 ) ( #858 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-07-20 09:38:12 +00:00
jason.woltje
3b70c66c07
fix(framework): drop unsupported --comment from tea pr approve/reject; route review body via durable comment ( #835 ) ( #857 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-20 09:19:48 +00:00
jason.woltje
11d2818453
docs(tasks): FCM-M5-001 done — verified completion evidence (supersedes #848 ) ( #853 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-20 07:45:08 +00:00
jason.woltje
aa999daf1b
fix(framework): durable Gitea comment posting in pr-review.sh via REST + read-back verify ( #812 ) ( #852 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-20 06:45:48 +00:00
jason.woltje
77c9a82614
fix(lease-broker): de-flake recovery_runtime b2 broker-socket ConnectionRefused race ( #849 ) ( #851 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-07-20 06:44:37 +00:00
jason.woltje
627cf2bb38
docs(fleet): add operator configuration guide ( #789 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-07-20 05:22:25 +00:00
jason.woltje
0582a8912b
WI-7 #834 : T-C server-side branch-protection posture + R1 honesty amendment ( #847 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-20 04:20:02 +00:00
jason.woltje
2509eb7646
WI-6 ( #833 ): constrained recovery command + mosaic-context-refresh skill wrapper ( #846 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-20 03:33:00 +00:00
jason.woltje
07553ead33
WI-5 #832 : Receipt-challenge protocol (compaction-refresh, milestone 188) ( #845 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-19 23:18:56 +00:00
jason.woltje
e522b22fa4
WI-4 ( #831 ): verbatim-hashed normative fragments (B_payload/H_payload) ( #844 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-19 20:34:20 +00:00
jason.woltje
e4d7d4502d
WI-3 ( #830 ): compaction observers → revoke + D4 same-PID generation auto-revoke ( #842 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-19 19:46:28 +00:00
jason.woltje
8dfcf1903e
fix( #838 ): bound broker reply deadlines + fail-close empty-read; de-flake acceptance harness ( #839 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Bound broker reply deadlines (separate read/lock/send budgets, BROKER_BUSY-before-mutation, fresh post-handle send budget → closes drop-after-commit window); fail-close empty/truncated read → GATE_UNAVAILABLE deny. De-flakes the 1917 acceptance surface. terra CODE APPROVE (pi) + Opus SECREV APPROVED (claude) — RoR comment 18143. Promote-lease-lost-ACK residual = fail-safe two-generals observability-gap, routed to WI-3 D2-v5 as named-disclosed-bounded-residual (route i). Gate-16 3-principal author=gpt-sol.
closes #838
2026-07-18 07:15:50 +00:00
jason.woltje
abd2791f59
feat(mosaic): WI-2 mutator-class guard for directive-freshness ( #837 )
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
WI-2: mutator-class guard for the compaction directive-freshness mechanism — command-position parser (prefix x var-indirection unified) + primitive-anchored invariant backstop + all-tools-hook fail-close. Parser-complete on principle: realistic evasion matrix RED-regression-covered, residual exotic evasions proven backstop-caught (B-tests), lens-convergence reached.
closes #829
2026-07-18 05:51:58 +00:00
jason.woltje
8ec67a1126
feat(mosaic): add authenticated external lease broker ( #836 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-18 03:12:23 +00:00
jason.woltje
d801d6c4c8
feat(mosaic): add secure skill registration CLI ( #826 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-17 23:45:35 +00:00
jason.woltje
d3bf52898b
fix: reject unknown installer arguments ( #825 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-17 22:16:51 +00:00
jason.woltje
3f77229e88
fix( #792 ): fleet roster ENOENT actionable exit + installer heading printf ( #818 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-17 21:36:36 +00:00
jason.woltje
686c881fe4
fix: fetch actual Gitea PR head for Codex reviews ( #815 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-17 19:44:56 +00:00
jason.woltje
fe7a468c9d
ci: bake jq into the prebuilt test image ( #821 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-17 19:12:43 +00:00
jason.woltje
cabf02e7b9
ci: bake git into the prebuilt test image ( #819 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-17 18:11:16 +00:00
jason.woltje
9ddc6fbda8
feat(fleet): mosaic fleet regen — regenerate roster-derived projections (PR3 of #791 ) ( #813 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-17 03:17:55 +00:00
jason.woltje
31607a4af6
feat(mosaic): durable pre-update snapshot + verify net + restore CLI ( #791 PR2) ( #811 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-17 00:43:18 +00:00
jason.woltje
32a0ffba13
feat(mosaic): manifest-owned upgrade guard so updates never wipe operator config ( #791 ) ( #802 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 23:01:26 +00:00
jason.woltje
8536454257
fix(glpi): accept HTTP 206 in list wrappers ( #807 ) ( #810 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 22:47:58 +00:00
jason.woltje
4f29cc604d
fix(tmux): correct cross-socket sender identity ( #808 ) ( #809 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-07-16 22:47:25 +00:00
jason.woltje
3be443c96d
feat(mosaic): claudex isolated config + env-inject + yolo wiring (P2–P4 of #790 ) ( #806 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 22:10:33 +00:00
jason.woltje
59f5f51ffd
feat(mosaic): claudex proxy preflight + lifecycle (P1 of #790 ) ( #793 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 21:15:33 +00:00
jason.woltje
9745bc3f29
feat(fleet): add reviewed v1-to-v2 migration preview ( #788 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 13:11:16 +00:00
jason.woltje
adad486b6f
fix(fleet): enforce exact comms authority ( #787 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-16 00:32:23 +00:00
jason.woltje
c1aecfabe9
test(fleet): cover reconciler lifecycle gates ( #786 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 16:46:13 +00:00
jason.woltje
499090508e
feat(fleet): reconcile local roster state ( #785 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 15:03:31 +00:00
jason.woltje
c593a15ef8
docs(kbn): freeze KBN-101 database role split contract ( #774 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 13:34:29 +00:00
jason.woltje
bc5e73629e
feat(fleet): add generation-guarded agent CRUD ( #773 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 12:03:05 +00:00
jason.woltje
191efaefeb
feat(fleet): enforce generated environment boundary ( #772 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 08:40:32 +00:00
jason.woltje
e9c4aa3e8b
test(fleet): validate shipped artifact dispositions ( #770 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 01:37:12 +00:00
jason.woltje
a5e8e55401
feat(fleet): add shared role semantics ( #768 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-15 00:53:47 +00:00
jason.woltje
eb4e14ae5c
feat(mos): add logical identity connector fencing ( #757 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-14 23:33:06 +00:00
jason.woltje
2e2280070a
docs( #753 ): clear KBN-010 threat and schema gate ( #765 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-14 21:46:44 +00:00
jason.woltje
aa5b43bba2
feat(fleet): add roster v2 structural compiler ( #764 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-14 20:37:52 +00:00
jason.woltje
ba13c08890
Fixes #756 ( #763 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-07-14 20:26:15 +00:00
jason.woltje
c32d85a337
docs(fleet): define declarative configuration M0 ( #760 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-14 19:53:12 +00:00
jason.woltje
48b2bc42c9
docs(mos): format Option 2 qualification report ( #762 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-14 19:33:09 +00:00
jason.woltje
5e832049bb
docs(mos): preserve Option 2 qualification evidence ( #759 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
2026-07-14 19:16:11 +00:00
jason.woltje
49e8a54105
docs( #751 ): Publish native Kanban/SOT canon ( #752 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-14 17:08:09 +00:00
jason.woltje
d077183554
docs(tess): remediate M5 qualification findings ( #750 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 19:59:38 +00:00
jason.woltje
405984af5a
De-hardcode orchestrator and interaction agent names ( #748 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 18:59:27 +00:00
jason.woltje
8dd4e9d541
docs(tess): ledger sync m4 — M5-003 done, #745/#746 merged ( #749 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 18:14:24 +00:00
jason.woltje
bc8016c831
docs( #744 ): complete Tess documentation gate ( #746 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 17:44:17 +00:00
jason.woltje
e72388b2cb
docs(tess): ledger sync m3 — M5-001 + M5-002 done ( #745 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 16:14:23 +00:00
jason.woltje
6345dbfcf2
feat(agent): add Matrix native runtime provider ( #744 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 15:29:37 +00:00
jason.woltje
c6e3cfbd95
docs(tess): ledger sync — W-001 3-of-3 merged, M5-002 approved, M5-001 in TDD ( #743 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-07-13 15:29:33 +00:00
jason.woltje
5789711ee0
docs(tess): add migration evidence set ( #742 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 15:14:29 +00:00
jason.woltje
f40e6ba388
docs(tess): sync M4 tracking to merged reality (M4 in-progress / gate-pending) ( #741 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 15:00:15 +00:00
jason.woltje
b7b0f508e6
feat(gateway): register Hermes runtime provider ( #740 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 14:45:08 +00:00
jason.woltje
3378b857eb
feat(memory): bind operator plugin to agent sessions ( #739 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 13:44:20 +00:00
jason.woltje
e2376190e5
feat(gateway): expose Mos coordination boundary ( #737 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-07-13 13:14:44 +00:00
jason.woltje
cca6aaf947
feat(agent): add Hermes transitional capability matrix ( #738 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-07-13 13:14:43 +00:00
jason.woltje
2363f155b4
feat(memory): add operator retrieval plugin ( #736 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 12:44:31 +00:00
jason.woltje
76325ca3f2
feat(tess): add Mos coordination boundary ( #735 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 11:59:16 +00:00
jason.woltje
9e5b9188ce
feat(agent): add transitional Hermes runtime adapter ( #734 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-07-13 11:29:27 +00:00
jason.woltje
f1c6b37b46
fix(tess): route bare Discord approvals ( #733 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 10:29:10 +00:00
jason.woltje
0b621660c8
feat(tess): wire durable interaction surfaces ( #732 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-07-13 10:05:29 +00:00
jason.woltje
84d884b932
feat( #709 ): add configured Discord interaction binding ( #730 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 09:02:45 +00:00
jason.woltje
8246ee0137
feat(tess): add generic interaction CLI ( #731 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 05:52:41 +00:00
jason.woltje
99a2d0fc9d
feat(tess): persist durable session state ( #729 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 05:14:11 +00:00
jason.woltje
e3b5113be2
feat(tess): add configurable Pi interaction service ( #728 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 02:59:27 +00:00
jason.woltje
24b07d0f83
docs(tess): sync M1 ledger to merged state; M1-V Mos-owned ( #727 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-13 02:14:13 +00:00
jason.woltje
86a50138a9
feat(tess): add safe runtime observability ( #726 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-13 01:29:18 +00:00
jason.woltje
7b9f40d3b7
fix(tess): redact chat persistence and egress ( #725 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-07-13 01:14:16 +00:00
jason.woltje
9a8a572fcf
feat(tess): add roster-bound tmux fleet provider ( #724 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-07-13 00:59:24 +00:00
jason.woltje
753a360517
fix( #707 ): scope session GC retention ( #720 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-07-13 00:44:19 +00:00
jason.woltje
e92186d768
feat: add Tess runtime provider registry ( #722 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-12 23:53:54 +00:00
jason.woltje
119f64e69d
feat( #707 ): secure Discord service ingress ( #716 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-12 23:18:29 +00:00
jason.woltje
46ca3ce742
fix(tess): enforce command authorization approvals ( #718 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-07-12 23:18:01 +00:00
jason.woltje
227b73fcdf
fix(security): enforce Tess MCP server identity ( #717 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-07-12 22:49:00 +00:00
jason.woltje
a959b1d6b4
ci: restrict push-event CI to protected branches (halve feature-branch load) ( #721 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-07-12 22:48:58 +00:00
jason.woltje
62f8177806
feat(tess): define runtime provider contract ( #719 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-07-12 22:29:21 +00:00
jason.woltje
353e43c947
fix: enforce Tess session ownership scope ( #715 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-07-12 22:14:17 +00:00
jason.woltje
ca9c2b5c23
restore Tess markdown formatting gate (v2, non-author) ( #714 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-07-12 21:32:16 +00:00
jason.woltje
b580d37d51
Fixes #703 ( #705 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
2026-07-12 20:49:43 +00:00
jason.woltje
59e49cfd15
docs(tess): define Pi-native interaction agent mission ( #712 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
2026-07-12 18:09:54 +00:00
jason.woltje
a99aded26d
fix(tools/git): -h/--help now exits 0 across 7 wrappers ( #702 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-11 09:23:46 +00:00
jason.woltje
4df38f7e81
fix(tools/_lib): /etc/mosaic host-level fallback for credential resolution ( #700 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-10 01:57:12 +00:00
jason.woltje
4e9e053800
fix(tools/tmux): unique per-invocation paste buffer; track auto-submit-drafts.sh ( #697 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-09 17:37:40 +00:00
jason.woltje
851c67c27b
docs(bootstrap): add python-is-python3 to agent-host prerequisites ( #694 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-07-03 09:38:40 +00:00
jason.woltje
86e106fcc9
feat( #462 ): add federation list verb ( #682 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-25 02:15:17 +00:00
jason.woltje
67135d3822
fix(fleet): guard mosaic fleet restart against tight-loop re-entry race ( #680 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-25 01:44:48 +00:00
jason.woltje
adb153428b
feat(installer): --dev flag builds CLI + gateway from source ( #681 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-24 23:54:52 +00:00
jason.woltje
c739256a2c
feat( #462 ): add federation scope enforcement service ( #672 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-24 23:22:46 +00:00
jason.woltje
fc2970916f
style(federation): re-run prettier on TASKS.md (unblock format:check) ( #679 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 22:51:22 +00:00
jason.woltje
79eae2ffce
fix(fleet): raise fleet-personas.spec timeout to 30s (mirror #665 ) ( #677 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-06-24 22:16:49 +00:00
jason.woltje
7035cd23bf
docs(federation): record M3-07/09 merges + fix M3-11 dependency DAG ( #678 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-06-24 21:44:57 +00:00
jason.woltje
6b94d014a8
feat( #462 ): add federation capabilities verb ( #674 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-06-24 21:39:56 +00:00
jason.woltje
838c44086c
feat( #462 ): add federation query source routing ( #673 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-06-24 21:39:45 +00:00
jason.woltje
3eeed04e17
docs(federation): sync M3 backlog to origin/main reality ( #671 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-06-24 21:15:14 +00:00
jason.woltje
e0e7be70f5
chore(release): @mosaicstack/mosaic 0.0.48 ( #670 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 20:01:17 +00:00
jason.woltje
d7eaa19380
feat(fleet): provision roster from system-type profile (H3) ( #665 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 19:48:54 +00:00
jason.woltje
248193cd3b
fix(fleet): export MOSAIC_AGENT_CLASS into the agent pane so personas inject ( #669 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 19:38:15 +00:00
jason.woltje
a9857c5043
fix(release): republish @mosaicstack/db 0.0.4 with BacklogService; mosaic 0.0.47 ( #668 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-24 18:54:33 +00:00
jason.woltje
e4ede69144
chore(release): mosaic 0.0.46 (persona contracts live) ( #666 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 18:29:01 +00:00
jason.woltje
a8008138c8
docs(fleet): record per-agent model switch in north star ( #667 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 18:14:37 +00:00
jason.woltje
0d17a29ebe
feat(fleet): export MOSAIC_AGENT_CLASS into agent env (A3a) ( #663 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 17:19:59 +00:00
jason.woltje
28cfecda94
feat(fleet): inject persona contract at launch (A3b) ( #664 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline failed
2026-06-24 17:06:51 +00:00
jason.woltje
6c84ccd0b1
feat(fleet): dedicated orchestrator persona, split from planner ( #662 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 16:42:23 +00:00
jason.woltje
84d2757817
feat(fleet): update-surviving persona customization (H4) ( #661 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 16:21:01 +00:00
jason.woltje
a738ac1410
feat(fleet): system-type profiles (H2) ( #660 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 16:02:25 +00:00
jason.woltje
538f0556d5
feat(fleet): cross-domain baseline persona library (H1) ( #659 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 15:31:56 +00:00
jason.woltje
a094c86eea
feat(fleet): North Star scope — general-purpose system, personas & system profiles (workstream H) ( #658 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-06-24 15:25:57 +00:00
jason.woltje
f852250419
feat(fleet): native Mosaic backlog on @mosaicstack/db (atomic claim + TTL) ( #657 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-06-24 14:55:10 +00:00
jason.woltje
61b1bdac2a
feat(fleet): add machine-readable NORTH_STAR.yaml + Markdown projection ( #656 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 14:40:09 +00:00
jason.woltje
cabb179d5a
feat(fleet): seed role registry markdown library ( #655 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-06-24 14:39:54 +00:00
jason.woltje
eb795bab18
chore(release): mosaic CLI 0.0.45 ( #654 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 14:11:33 +00:00
jason.woltje
937077f6be
fix(fleet): report idle agents as available, reserve stuck for genuine blocks ( #653 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 13:58:22 +00:00
jason.woltje
1020cfaf9b
chore(release): mosaic CLI 0.0.44 ( #652 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 06:49:04 +00:00
jason.woltje
70661e3fab
fix(fleet): derive pane idle from window activity fallback ( #651 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 06:37:45 +00:00
jason.woltje
ec8dd7ca86
chore(release): mosaic CLI 0.0.43 ( #650 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 06:08:20 +00:00
jason.woltje
d887555852
feat(fleet): classify agent readiness in fleet ps ( #649 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 05:55:47 +00:00
jason.woltje
e3adc6a1bc
chore(release): mosaic CLI 0.0.42 ( #648 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 05:28:28 +00:00
jason.woltje
aa27c42129
fix(fleet): pre-trust claude agent workdir to clear the folder-trust gate ( #644 ) ( #645 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 05:16:46 +00:00
jason.woltje
16ae809442
fix(update): re-seed framework on version drift, not just in-command updates ( #642 ) ( #646 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-24 05:04:34 +00:00
jason.woltje
6980e40e51
fix(db): stop pglite migration tests flaking CI (timeout + WASM OOM) ( #647 )
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
2026-06-24 05:04:28 +00:00
jason.woltje
e6b53ea103
fix(tools): default AGENT_WORK_ROOT to $HOME/mosaic/agent-work ( #641 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was canceled
2026-06-23 13:40:13 +00:00
jason.woltje
4da87640e8
feat(tmux): agent-send.sh --class triage tag for the comms daemon ( #552 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-23 03:25:16 +00:00
jason.woltje
a38a491403
chore(release): mosaic CLI 0.0.41 ( #640 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-23 02:21:04 +00:00
jason.woltje
78d67c6261
chore(ci): bump ci-base image node 22 → 24-alpine ( #639 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-23 00:59:39 +00:00
jason.woltje
94e5cd7a81
ci: eliminate cold pnpm install via pre-baked CI base image (Phase 1) ( #635 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-22 22:50:21 +00:00
jason.woltje
4e84f8e850
feat(fleet): comms-block emitter + FLEET-LAUNCH runbook ( #633 ) ( #638 )
...
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 22:23:50 +00:00
jason.woltje
cf8ceb3095
CI: add pre-baked ci-base image (producer) [Phase 1a] ( #637 )
ci/woodpecker/push/ci-image Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-06-22 22:20:48 +00:00
jason.woltje
bf2a6745c8
fix(install): preserve user fleet data on re-seed + refresh active units (CRITICAL) ( #632 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 21:38:09 +00:00
jason.woltje
d539d61e0e
refactor(fleet): rename tmux socket mosaic-factory → mosaic-fleet ( #630 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 21:08:43 +00:00
jason.woltje
3f69d45334
docs(fleet): consolidate north-star doctrine (budget + control plane + identity) ( #629 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 21:08:41 +00:00
jason.woltje
e2336bb0ca
chore(release): mosaic CLI 0.0.40 ( #624 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-06-22 19:49:45 +00:00
jason.woltje
7342415a32
fix(fleet): consume model_hint + fix socket-default trap (stand-up fixes) ( #627 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 19:18:01 +00:00
jason.woltje
095e19443b
feat(fleet): onboarding-injection — comms cheat-sheet + peer roster per agent ( #621 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 17:54:54 +00:00
jason.woltje
fabc413407
feat(fleet): F4 Phase 2a — Matrix CS-API connector client + factory ( #618 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 16:48:17 +00:00
jason.woltje
858d90329d
feat(fleet): F4 Phase 1 — chat connector abstraction + Matrix design ( #617 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 16:14:32 +00:00
jason.woltje
2bf66136e4
feat(fleet): enhancer role + two-agent floor (orchestrator + enhancer) ( #615 )
...
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 13:15:59 +00:00
jason.woltje
4434c3c481
docs(fleet): orchestrator+enhancer two-agent floor + role library + Discord plugin north-star ( #613 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-06-22 13:15:05 +00:00
jason.woltje
dd0a0d38c6
ci(publish): gate kaniko image builds + publish on changed paths (CI throughput) ( #619 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 13:14:31 +00:00
jason.woltje
d46ac40890
fix(fleet): boot-survival symmetry — disable-on-remove + add-enable + init-R5 ( #612 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 08:12:58 +00:00
jason.woltje
8ddd48c843
feat(mosaic): mosaic update re-seeds framework + relaunches agents (R13) ( #610 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 03:34:05 +00:00
jason.woltje
528700ceea
feat(framework): P6 — docs + compliance matrix + resident-budget CI ( #607 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/tag/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 02:20:35 +00:00
jason.woltje
32f4215461
chore(release): bump @mosaicstack/mosaic 0.0.38 -> 0.0.39 ( #608 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-06-22 02:16:12 +00:00
jason.woltje
23343bb7f0
feat(mosaic): P5 — overlay composer (compose-contract + *.local overlays) ( #605 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 02:16:05 +00:00
jason.woltje
c8b2dab0ca
chore(release): bump @mosaicstack/mosaic 0.0.37 -> 0.0.38 ( #603 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-06-22 01:48:27 +00:00
jason.woltje
6dbe452a9f
fix(fleet): watch viewer-session leak + workdir test settle-race ( #601 )
...
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 01:43:21 +00:00
jason.woltje
59c755067e
feat(fleet): F3-m2 — native Pi heartbeat + model surface + mosaic_mission_status tool ( #602 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 01:43:18 +00:00
jason.woltje
6ffb27787e
fix(fleet): complete HB reader/writer consistency + sidecar hardening ( #599 )
...
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-22 01:22:35 +00:00
jason.woltje
130837365f
chore(release): bump @mosaicstack/mosaic 0.0.36 -> 0.0.37 ( #597 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-06-21 23:27:14 +00:00
jason.woltje
67df06f1c4
feat(fleet): orchestrator-mutable fleet — fleet add/remove (F5/R9) ( #596 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-06-21 23:26:21 +00:00
jason.woltje
60a309d5a4
fix(fleet): heartbeat consistency — MOSAIC_HOME path + configurable interval ( #595 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-21 23:25:53 +00:00
jason.woltje
2dc0f24828
docs(fleet): Fleet Suite PRD (init/configure/operate + Mos-on-Discord) ( #588 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-06-21 23:17:10 +00:00
jason.woltje
31e7a4d25e
docs(framework): P4.1 — fix stale install.sh comments + cmp-equal early-exit ( #593 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-21 23:12:31 +00:00
jason.woltje
ca19d57bba
feat(fleet): config-type presets + AI-free init wizard (F1) ( #591 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-06-21 23:07:41 +00:00
jason.woltje
bb7d549080
feat(framework): P4 — upgrade-safe Constitution migration (both installers) ( #590 )
...
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-21 23:03:48 +00:00
jason.woltje
5bef2c35eb
feat(fleet): fleet ps surfaces unmanaged socket sessions ( #586 )
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
2026-06-21 22:37:34 +00:00
jason.woltje
2849a8f9db
chore(release): bump @mosaicstack/mosaic 0.0.35 -> 0.0.36 ( #585 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-21 21:46:15 +00:00
jason.woltje
7ced5588c9
feat(fleet): launcher heartbeat sidecar — HB for all runtimes (pi/claude/codex) ( #584 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-06-21 21:14:20 +00:00
jason.woltje
afcbbb302f
feat(fleet): auto-enable units on install + drift recognizes wrapped runtimes ( #583 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-06-21 20:02:19 +00:00
jason.woltje
c2c0b5fe8d
chore(release): bump @mosaicstack/mosaic 0.0.34 -> 0.0.35 ( #582 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-21 18:59:39 +00:00
jason.woltje
c9cfe36204
docs(framework): P3.1 fast-follow — governance wording + gate scope + bare-launch note ( #577 )
...
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-21 18:56:50 +00:00
jason.woltje
fc90c89913
fix(fleet): durable runtime PATH for detached agent launch ( #581 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-21 17:30:40 +00:00
jason.woltje
af2eede7a9
feat(fleet): Phase-2 observability — fleet ps + watch + send verify ( #579 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-21 04:23:51 +00:00
jason.woltje
5118be74cb
feat(framework): P3 — extract Constitution (L0) + gut AGENTS dispatcher ( #575 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-21 03:20:32 +00:00
jason.woltje
bf24066a49
feat(framework): P1+P2 — public sanitization + blocking CI gate ( #572 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-21 02:40:11 +00:00
jason.woltje
92316ab41e
feat(framework): P0 — MIT license + executable-leak sanitization ( #570 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-21 01:43:49 +00:00
jason.woltje
b354bc8fae
docs(framework): add agency & persistence patterns to config + guides ( #543 )
...
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-06-21 01:43:36 +00:00
jason.woltje
e834bbb83c
fix(fleet): install executable tmux helpers ( #568 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 22:27:46 +00:00
jason.woltje
7498fcb20d
fix(fleet): preserve agent env overrides on install ( #567 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 21:50:46 +00:00
jason.woltje
42d081613f
chore(release): bump mosaic cli to 0.0.32 ( #566 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 21:15:25 +00:00
jason.woltje
b5c1381e45
fix(fleet): harden operator sends for release ( #565 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 20:41:11 +00:00
jason.woltje
6dfd78f643
feat(fleet): add local canary CLI ( #563 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 17:49:01 +00:00
jason.woltje
45e2c2aad8
docs: plan durable tmux fleet install ( #557 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 16:19:19 +00:00
jason.woltje
57919c38d8
fix(framework/tools): wrapper hardening — TLS validation, cred-path fallback, no-CI fast-exit ( #551 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-20 10:16:38 +00:00
jason.woltje
87f561c1f8
fix(launch): include Pi native skill roots in 'all' mode; dedup 'discover' force-loads ( #556 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-19 19:58:09 +00:00
jason.woltje
8c45857859
feat(launch): force-load fleet-critical Pi skills + reconcile skill docs ( #555 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-19 18:31:02 +00:00
jason.woltje
605221d42f
docs(framework/tools): lead TOOLS.md with high-salience fleet-tools cheatsheet ( #554 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-06-19 18:03:03 +00:00
jason.woltje
ee584ab48c
fix(framework/tools): prettier-format woodpecker README — restore main format gate ( #553 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-18 22:39:35 +00:00
jason.woltje
ab4e138003
feat(framework/tools): orchestration helpers — lane-brief.sh + ci-wait.sh ( #547 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was canceled
2026-06-18 22:08:40 +00:00
jason.woltje
719c6ac3db
fix(framework/tools): eval injection, broken JSON, tmpfile leak ( #549 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was canceled
2026-06-18 21:35:32 +00:00
jason.woltje
b8807e60df
feat(agent-reflection): durable kernel — reflection.v1 capture + risk-floor + Phase-0 ( #545 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-16 21:35:40 +00:00
jason.woltje
c461380a4a
feat(mosaic-as): agent registration + scoped/revocable tokens (US-007) ( #541 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-16 01:10:44 +00:00
jason.woltje
98a771c8f8
Fix Gitea wrapper login resolution ( #538 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-12 02:34:18 +00:00
jason.woltje
bd9527c033
docs(framework): canonize merge-authority policy (hard gate 13 + E2E gate note) ( #537 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-11 23:56:20 +00:00
jason.woltje
aa221bf92e
release(mosaic): bump @mosaicstack/mosaic 0.0.30 -> 0.0.31 ( #534 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
2026-06-11 19:55:43 +00:00
jason.woltje
799df40f4e
feat(appservice): room provisioning (M4c) ( #535 )
ci/woodpecker/push/publish Pipeline was canceled
ci/woodpecker/push/ci Pipeline was canceled
2026-06-11 19:50:55 +00:00
jason.woltje
b79e9f32c6
chore(framework): canonize Vault-as-SSOT + ESO-default secrets policy ( #519 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-11 19:07:00 +00:00
jason.woltje
89d69eb23b
docs: add mission control and coordination resilience docs ( #511 )
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
2026-06-11 19:06:35 +00:00
jason.woltje
59b611ba8a
refactor(framework): thin-core prompt diet — cut injected contract ~53% ( #529 )
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-06-11 18:10:42 +00:00
jason.woltje
dfa0be42f6
feat(framework/tools): inter-agent tmux comms — agent-send.sh + addressing standard ( #533 )
ci/woodpecker/push/ci Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
2026-06-11 18:01:44 +00:00
jason.woltje
bb96a3f23e
ci: publish mosaic-as appservice image ( #532 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-10 23:00:38 +00:00
jason.woltje
48b2f28e45
feat(appservice): mosaic-as daemon host + container (M4a) ( #531 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-10 22:16:28 +00:00
jason.woltje
8f09c910a9
feat(appservice): Matrix Application Service core library (M4a) ( #530 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-10 21:23:25 +00:00
jason.woltje
dde95a59b3
fix(pi): reduce startup skill-token overhead ( #527 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-06-05 18:36:42 +00:00
jason.woltje
821e19dcbb
fix(mosaic-tools): roll up Gitea and Woodpecker wrapper fixes ( #524 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-05-26 20:56:09 +00:00
jason.woltje
755df9079e
Merge pull request 'fix(db): bootstrap migrations on local-tier gateway startup' ( #510 ) from fix/db-bootstrap-migrations into main
2026-05-04 22:13:14 +00:00
jason.woltje and Claude Opus 4.7
ac5650d9f9
fix(db): bootstrap migrations on local-tier gateway startup
...
Fresh `mosaic gateway install` (npm) left the gateway DB schema empty —
sign-in 500'd with `relation "users" does not exist`, and every entry
point (auth, bootstrap setup) failed because they all query the users
table first. Five stacked bugs on the local (PGlite) tier:
1. `packages/db/package.json` `files: ["dist"]` excluded the `drizzle/`
SQL migrations from the published tarball.
2. `runMigrations()` only supports postgres-js — unusable for embedded
PGlite.
3. `apps/gateway/src/database/database.module.ts` never invoked
migrations at startup.
4. `createPgliteDb` didn't load pgvector, so migration 0001's
`CREATE EXTENSION vector` failed.
5. Drizzle's PG migrator wraps every migration in one outer
transaction, which trips Postgres' `check_safe_enum_use` on
migration 0009 (`ALTER TYPE ADD VALUE 'pending'` → `SET DEFAULT
'pending'` in the same tx).
Changes:
- Ship `drizzle/` in the published tarball.
- `createPgliteDb` loads `@electric-sql/pglite/vector`.
- New `runPgliteMigrations(handle)` walks the Drizzle journal and
runs each statement-breakpoint chunk through PGlite's `client.exec()`
(autocommit per statement). Records into `drizzle.__drizzle_migrations`
for interop with the postgres-js path. Per-statement try/catch
surfaces which statement of which migration failed.
- `DatabaseModule` runs migrations in `OnModuleInit` before
`app.listen()`. Local tier: explicit `runPgliteMigrations` then
`storageAdapter.migrate()`. Postgres tier: just `storageAdapter.migrate()`,
which already calls `runMigrations(url)` internally — no double-call.
- Removed `packages/storage/src/test-utils/pglite-with-vector.ts`. The
"intentionally not exported" rationale is moot now that migration
0001 forces pgvector load anyway. The integration test uses
`createPgliteDb` + `runPgliteMigrations` from `@mosaicstack/db`.
Tests: BetterAuth tables exist after migrate; idempotent (re-runs 0009);
partial-failure surfaces statement-level context and leaves no ledger row.
QA on a fresh PGlite install:
- `Applying PGlite schema migrations...` then `Initializing storage
adapter (pglite)...` in startup log.
- `GET /api/bootstrap/status` → `{"needsSetup":true}` HTTP 200 (was 500).
- `POST /api/bootstrap/setup` reaches Zod validator (was 500).
Scope: this PR fixes the local (PGlite) tier. Postgres-tier first
install still has the outer-transaction problem and a journal ordering
bug (0009's `when` < 0008's). Documented inline as TODO and in the
scratchpad — needs a separate change with real-Postgres validation.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected] >
2026-05-04 17:06:50 -05:00
jason.woltje
bd83f86740
Merge pull request 'feat(federation): mTLS AuthGuard with OID-based grant resolution (FED-M3-03)' ( #509 ) from feat/federation-m3-auth-guard into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-25 13:27:20 +00:00
jarvis and Claude Sonnet 4.6
0af3e218a1
fix(federation/auth-guard): remediate CRIT-1/CRIT-2 + HIGH-1..4 review findings
...
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
- CRIT-1: Validate cert subjectUserId against grant.subjectUserId from DB;
use authoritative DB value in FederationContext
- CRIT-2: Add @Inject(GrantsService) decorator (tsx/esbuild requirement)
- HIGH-1: Validate UTF8String TLV tag, length, and bounds in OID parser
- HIGH-2: Collapse all 403 wire messages to a generic string to prevent
grant enumeration; keep internal logger detail
- HIGH-3: Assert federation wire envelope shape in all guard tests
- HIGH-4: Regression test for subjectUserId cert/DB mismatch
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-04-25 06:33:37 -05:00
jarvis and Claude Sonnet 4.6
b01c9b3bb0
feat(federation): mTLS AuthGuard with OID-based grant resolution (FED-M3-03)
...
Adds FederationAuthGuard that validates inbound mTLS client certs on
federation API routes. Extracts custom OIDs (grantId, subjectUserId),
loads the grant+peer from DB in one query, asserts active status, and
validates cert serial as defense-in-depth. Attaches FederationContext
to requests on success and uses federation wire-format error envelopes
(not raw NestJS exceptions) for 401/403 responses.
New files:
- apps/gateway/src/federation/oid.util.ts — shared OID extraction (no dupe ASN.1 logic)
- apps/gateway/src/federation/server/federation-auth.guard.ts — guard impl
- apps/gateway/src/federation/server/federation-context.ts — FederationContext type + module augment
- apps/gateway/src/federation/server/index.ts — barrel export
- apps/gateway/src/federation/server/__tests__/federation-auth.guard.spec.ts — 11 unit tests
Modified:
- apps/gateway/src/federation/grants.service.ts — adds getGrantWithPeer() with join
- apps/gateway/src/federation/federation.module.ts — registers FederationAuthGuard as provider
Closes #462
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-04-25 06:33:37 -05:00
jason.woltje
b67f2c9f08
Merge pull request 'feat(federation): outbound mTLS FederationClient (FED-M3-08)' ( #508 ) from feat/federation-m3-client into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-24 04:30:29 +00:00
jarvis and Claude Sonnet 4.6
37675ae3f2
fix(federation/client): serialize cache fills, destroy evicted Agent, cover env-var guard
...
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
- HIGH-A: resolveEntry now uses promise-cache pattern so concurrent
callers serialize on a single in-flight build, eliminating duplicate
key material in heap and duplicate DB round-trips
- HIGH-B: flushPeer destroys the evicted undici Agent so stale TLS
connections close on cert rotation
- MED-C: add regression test for PEER_MISCONFIGURED when
STEP_CA_ROOT_CERT_PATH is unset
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-04-23 22:56:57 -05:00
jarvis and Claude Opus 4.7
a4a6769a6d
fix(federation/client): pin Step-CA root, fix lockfile, harden cache test
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
CRIT-1: regenerate pnpm-lock.yaml so apps/gateway resolves [email protected] .6
(prior PR pushed package.json without lockfile update; CI failed with
ERR_PNPM_OUTDATED_LOCKFILE). Incidentally cleans 57 lines of stale
peer-dep entries.
CRIT-2: cache-hit test no longer swallows resolveEntry errors. Calls the
private method directly twice and asserts identity equality plus a
single DB select, removing the silent-failure path the prior assertion
allowed.
HIGH-1: mTLS Agent now pins Step-CA root via STEP_CA_ROOT_CERT_PATH.
Without the env var resolveEntry throws PEER_MISCONFIGURED, refusing to
dial peers against the public trust store. PEM is read once and cached
on the service instance.
Co-Authored-By: Claude Opus 4.7 <[email protected] >
2026-04-23 22:30:09 -05:00
jarvis and Claude Sonnet 4.6
21650fb194
feat(federation): outbound mTLS FederationClient (FED-M3-08)
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
Implements FederationClientService — a NestJS injectable that dials peer
gateways over mTLS (undici Agent with cert+sealed-key from federation_peers),
invokes list/get/capabilities verbs, validates responses via Zod, and surfaces
all failure modes as typed FederationClientError with a coherent error code
taxonomy (PEER_NOT_FOUND, PEER_INACTIVE, PEER_MISCONFIGURED, NETWORK,
FORBIDDEN, HTTP_{status}, INVALID_RESPONSE).
Per-peer Agent instances are cached in a Map for the service lifetime;
flushPeer(peerId) invalidates the cache for M5/M6 cert rotation and
revocation events.
Wired into FederationModule providers + exports so QuerySourceService
(M3-09) can inject it.
13 unit tests covering all required scenarios via undici MockAgent +
real sealClientKey/unsealClientKey round-trip.
Closes #462
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-04-23 22:16:52 -05:00
jason.woltje
89c733e0b9
feat(federation): two-gateway test harness scaffold (FED-M3-02) ( #505 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-24 03:01:25 +00:00
jason.woltje
ee3f2defd9
feat(types): federation v1 DTOs (FED-M3-01) ( #506 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-24 02:54:40 +00:00
jason.woltje
7342c1290d
fix(federation): use real PEM certs in enrollment + ca service tests ( #507 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-24 02:43:42 +00:00
jason.woltje
e64ddd2c1c
docs(federation): M3 mission planning — 14-task decomposition ( #504 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-04-24 01:13:40 +00:00
jason.woltje
4ece6dc643
chore(federation): M2 milestone close (FED-M2-13) ( #503 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/tag/publish Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 06:09:54 +00:00
jason.woltje
194c3b603e
docs(federation): M2 Step-CA setup guide + admin CLI reference (FED-M2-12) ( #502 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-22 06:06:45 +00:00
jason.woltje
fc1600b738
fix(federation): security hardening — OID verification, atomic activation, audit on failure ( #501 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline failed
2026-04-22 06:02:52 +00:00
jason.woltje
0ee5b14c68
test(federation): M2 E2E peer-add enrollment flow (FED-M2-10) ( #500 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 05:37:06 +00:00
jason.woltje
3eee176cc3
test(federation): M2 integration tests (FED-M2-09) ( #499 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 05:08:24 +00:00
jason.woltje
74fe60d8d6
feat(federation): admin controller + CLI federation commands (FED-M2-08) ( #498 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 04:39:46 +00:00
jason.woltje
0bfaa56e9e
feat(federation): enrollment controller + single-use token flow (FED-M2-07) ( #497 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 04:23:19 +00:00
jason.woltje
01dd6b9fa1
feat(federation): grants service CRUD + status transitions (FED-M2-06) ( #496 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 03:57:12 +00:00
jason.woltje
1038ae76e1
feat(federation): Step-CA client service for grant certs (FED-M2-04) ( #494 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 03:34:37 +00:00
jason.woltje
bf082d95a0
feat(federation): seal federation peer client keys at rest (FED-M2-05) ( #495 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 03:10:20 +00:00
jason.woltje
bb24292cf7
fix(federation): healthcheck + restart policy for federated-test stacks ( #492 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 02:56:40 +00:00
jason.woltje
f2cda52e1a
fix(deploy): bump gateway image digest to sha-9f1a081 [DEPLOY-IMG-FIX] ( #491 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-22 02:35:19 +00:00
jason.woltje
7d7cf012f0
feat(federation): scope schema validator [FED-M2-03] ( #489 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline failed
2026-04-22 02:31:13 +00:00
jason.woltje
c56dda74aa
feat(federation): Step-CA sidecar in federated compose [FED-M2-02] ( #490 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-22 02:21:49 +00:00
jason.woltje
9f1a08185e
docs(federation): S21 tracking — DEPLOY-01/02 done, IMG-FIX in flight, M2-01 in remediation ( #487 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-22 02:02:36 +00:00
jason.woltje
d2e408656b
fix(docker): pnpm deploy for self-contained gateway runtime image ( #488 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-22 02:02:29 +00:00
jason.woltje
54c278b871
feat(db): federation schema — grants/peers/audit_log [FED-M2-01] ( #486 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-22 02:02:21 +00:00
jason.woltje
4dbd429203
feat(deploy): portainer stack template for federation test instances [DEPLOY-02] ( #485 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-22 01:34:44 +00:00
jason.woltje
b985d7bfe2
docs(federation): M2 mission planning — TASKS decomposition + manifest update ( #483 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-22 01:24:00 +00:00
jason.woltje
45e8f02c91
feat(mosaic-portainer): PORTAINER_INSECURE flag for self-signed TLS ( #484 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-22 01:21:54 +00:00
jason.woltje
54c422ab06
Merge pull request 'docs(federation): close FED-M1 milestone' ( #481 ) from feat/federation-m1-close into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
2026-04-20 02:20:43 +00:00
jarvis
b9fb8aab57
docs(federation): close FED-M1 milestone
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- TASKS.md: mark FED-M1-12 done with PR/issue/tag references
- MISSION-MANIFEST.md: phase=M1 complete, progress 1/7, M1 row done with PR range #470-#481, session log appended
- scratchpad: Session 19 entry covering M1-09 → M1-12 with PR ledger and M1 retrospective learnings
Refs #460
2026-04-19 21:12:52 -05:00
jason.woltje
78841f228a
docs(federation): operator setup + migration guides (FED-M1-11) ( #480 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-20 02:07:15 +00:00
jason.woltje
dc4afee848
fix(storage): redact credentials in driver errors + advisory lock (FED-M1-10) ( #479 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline failed
2026-04-20 02:02:57 +00:00
jason.woltje
1e2b8ac8de
test(federation): standalone regression canary — no breakage from M1 (FED-M1-09) ( #478 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-20 01:46:35 +00:00
jason.woltje
15d849c166
test(storage): integration test for migrate-tier (FED-M1-08) + camelCase column fix ( #477 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-20 01:40:02 +00:00
jason.woltje
78251d4af8
test(federation): integration tests for federated tier gateway boot (FED-M1-07) ( #476 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-20 01:13:10 +00:00
jason.woltje
1a4b1ebbf1
feat(gateway,storage): mosaic gateway doctor with tier health JSON (FED-M1-06) ( #475 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-20 01:00:39 +00:00
jason.woltje
ccad30dd27
feat(storage): mosaic storage migrate-tier with dry-run + idempotency (FED-M1-05) ( #474 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-20 00:35:08 +00:00
jason.woltje
4c2b177eab
feat(gateway): tier-detector with fail-fast PG/Valkey/pgvector probes (FED-M1-04) ( #473 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-20 00:07:07 +00:00
jason.woltje
58169f9979
feat(storage): pgvector adapter support gated on tier=federated (FED-M1-03) ( #472 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-19 23:42:18 +00:00
jason.woltje
51402bdb6d
feat(infra): docker-compose.federated.yml overlay (FED-M1-02) ( #471 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-19 23:21:31 +00:00
jason.woltje
9c89c32684
feat(config): add federated tier + rename team→standalone (FED-M1-01) ( #470 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-19 23:11:11 +00:00
jason.woltje
8aabb8c5b2
docs(mission): author MVP rollup manifest, archive install-ux-v2 ( #469 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-19 22:51:11 +00:00
jason.woltje
66512550df
docs(federation): PRD, milestones, mission manifest, and M1 task breakdown ( #468 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-19 22:27:09 +00:00
jason.woltje
46dd799548
docs(federation): PRD, milestones, mission manifest, and M1 task breakdown ( #467 )
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-19 22:09:20 +00:00
jason.woltje
5f03c05523
chore(release): @mosaicstack/mosaic 0.0.30 ( #459 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-04-12 02:18:17 +00:00
jason.woltje
c3f810bbd1
fix(mosaic): seed TOOLS.md from defaults on install ( #458 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-04-12 02:02:21 +00:00
jason.woltje
b2cbf898d7
docs(scratchpad): finalize yolo runtime hotfix evidence ( #456 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Follow-up to mosaicstack/stack#455 .
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-04-11 17:14:00 +00:00
jason.woltje
b2cec8c6ba
fix(mosaic): stop yolo runtime from leaking runtime name as first user message ( #455 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Fixes mosaicstack/stack#454
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-04-11 16:57:43 +00:00
jason.woltje
81c1775a03
chore(release): @mosaicstack/mosaic 0.0.29 ( #453 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/tag/publish Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-04-08 00:42:54 +00:00
jason.woltje
f64ec12f39
fix(installer): preserve credentials dir and seed STANDARDS.md ( #452 )
...
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-04-08 00:40:49 +00:00
jason.woltje
026382325c
feat(framework): superpowers enforcement, typecheck hook, file-ownership rules ( #451 )
...
ci/woodpecker/manual/ci Pipeline was successful
ci/woodpecker/manual/publish Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-04-07 00:44:22 +00:00
jason.woltje
1bfd8570d6
chore(release): @mosaicstack/mosaic 0.0.28 ( #450 )
2026-04-06 00:46:31 +00:00
jason.woltje
312acd8bad
chore: sweep mosaicstack/mosaic-stack → mosaicstack/stack + add short install URL ( #448 )
2026-04-06 00:39:56 +00:00
jason.woltje
d08b969918
fix(mosaic): mask password input in TUI login prompt ( #449 )
2026-04-06 00:33:54 +00:00
jason.woltje
051de0d8a9
docs: update README for mosaicstack/stack repo rename ( #447 )
2026-04-06 00:22:20 +00:00
jason.woltje
bd76df1a50
feat(mosaic): drill-down main menu + provider-first flow + quick start ( #446 )
2026-04-06 00:15:23 +00:00
jason.woltje
62b2ce2da1
docs: orchestrator close-out IUV-M02 ( #445 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 23:50:55 +00:00
jason.woltje
172bacb30f
feat(mosaic): IUV-M02 — CORS/FQDN UX polish + skill installer rework ( #444 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 23:44:07 +00:00
jason.woltje
43667d7349
docs: orchestrator close-out IUV-M01 — mark tasks done, append session 2 ( #443 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 22:40:08 +00:00
jason.woltje
783884376c
docs: mark IUV-M01 complete — mosaic-v0.0.26 released ( #436 ) ( #442 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 22:31:37 +00:00
jason.woltje
c08aa6fa46
fix: add vitest.config.ts to eslint allowDefaultProject ( #440 build fix) ( #441 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
2026-04-05 22:01:57 +00:00
jason.woltje
0ae932ab34
fix: bootstrap hotfix — DTO erasure, wizard failure, port prefill, Pi SDK copy (mosaic-v0.0.26) ( #440 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
2026-04-05 21:43:30 +00:00
jason.woltje
a8cd52e88c
docs: scaffold install-ux-v2 mission ( #439 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 21:27:19 +00:00
jason.woltje
a4c94d9a90
chore(release): @mosaicstack/mosaic 0.0.25 ( #435 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
2026-04-05 20:53:19 +00:00
jason.woltje
cee838d22e
docs: close out install-ux-hardening mission ( #434 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 19:19:54 +00:00
jason.woltje
732f8a49cf
feat: unified first-run flow — merge wizard + gateway install (IUH-M03) ( #433 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 19:13:02 +00:00
jason.woltje
be917e2496
docs: mark IUH-M02 complete, start IUH-M03 ( #432 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 18:02:21 +00:00
jason.woltje
cd8b1f666d
feat: wizard remediation — password mask, hooks preview, headless (IUH-M02) ( #431 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 17:47:53 +00:00
jason.woltje
8fa5995bde
docs: scaffold install-ux-hardening mission + archive cli-unification ( #430 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 17:15:39 +00:00
jason.woltje
25cada7735
feat: mosaic uninstall (IUH-M01) ( #429 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 17:06:21 +00:00
jason.woltje
be6553101c
docs: finalize CLI unification mission at mosaic-v0.0.24 ( #424 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 14:54:48 +00:00
jason.woltje
417805f330
fix: bump memory/queue/storage to 0.0.4 to force republish ( #423 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
2026-04-05 14:39:15 +00:00
jason.woltje
2472ce52e8
fix: bump stale sub-package versions (brain/forge/log) ( #422 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 14:26:30 +00:00
jason.woltje
597eb232d7
fix: revert mosaic to 0.0.22 alpha + republish macp ( #421 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 14:15:46 +00:00
jason.woltje
afe997db82
docs: mission cli-unification-20260404 complete ( #420 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 07:54:50 +00:00
jason.woltje
b9d464de61
docs: CLI unification release v0.1.0 (M8) ( #419 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/tag/publish Pipeline was successful
2026-04-05 07:46:00 +00:00
jason.woltje
872c124581
feat(mosaic): unified first-run UX wizard -> gateway install -> verify ( #418 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 07:29:17 +00:00
jason.woltje
a531029c5b
feat(mosaic): mosaic telemetry command (M6 CU-06-01..05) ( #417 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 07:06:42 +00:00
jason.woltje
35ab619bd0
docs: session 2 orchestrator bookkeeping (M3/M4/M5 complete) ( #416 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline failed
2026-04-05 07:06:40 +00:00
jason.woltje
831193cdd8
fix(macp): align exports + add CLI smoke test ( #415 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 06:57:42 +00:00
jason.woltje
df460d5a49
feat(macp): mosaic macp CLI surface ( #410 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 06:33:52 +00:00
jason.woltje
119ff0eb1b
fix(mosaic): gateway token recovery review remediations ( #414 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 06:13:29 +00:00
jason.woltje
3abd63ea5c
Merge pull request 'feat(mosaic): mosaic auth CLI surface' ( #413 ) from feat/mosaic-auth-cli into main
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-05 06:11:33 +00:00
jason.woltje
641e4604d5
feat(forge): mosaic forge CLI surface ( #412 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-05 06:08:50 +00:00
jarvis and Claude Sonnet 4.6
9b5ecc0171
feat(mosaic): add auth command and stage parallel agent changes
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Picks up auth command and spec written by parallel agent, and updated
mosaic cli.ts wiring from parallel development during cli-unification.
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-04-05 00:58:03 -05:00
jarvis and Claude Sonnet 4.6
a00325da0e
feat(forge): add registerForgeCommand for mosaic forge CLI surface
...
Adds mosaic forge run|status|resume|personas list subcommands to
@mosaicstack/forge, wires registerForgeCommand into the root mosaic CLI,
and ships a smoke test asserting command structure. Ref CU-05-01
cli-unification-20260404.
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-04-05 00:58:03 -05:00
jason.woltje
4ebce3422d
feat(log): mosaic log CLI surface ( #407 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 05:57:22 +00:00
jason.woltje
751e0ee330
feat(storage): mosaic storage CLI surface ( #405 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 05:48:13 +00:00
jason.woltje
54b2920ef3
feat(memory): mosaic memory CLI surface ( #406 )
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline failed
2026-04-05 05:44:06 +00:00
jason.woltje
5917016509
feat(mosaic): gateway token recovery via BetterAuth cookie ( #411 )
ci/woodpecker/push/ci Pipeline is pending
ci/woodpecker/push/publish Pipeline is pending
2026-04-05 05:43:49 +00:00
jason.woltje
7b4f1d249d
feat(mosaic): top-level mosaic config command ( #408 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-05 05:37:05 +00:00
jason.woltje
5425f9268e
feat(queue): mosaic queue CLI surface ( #404 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-05 05:27:59 +00:00
jason.woltje
febd866098
feat(brain): mosaic brain CLI surface ( #403 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 05:20:44 +00:00
jason.woltje
2446593fff
feat(mosaic): alphabetize and group mosaic --help output ( #402 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 05:12:32 +00:00
jason.woltje
651426cf2e
docs(plan): gateway admin token recovery flow ( #401 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-05 05:11:33 +00:00
jason.woltje
cf46f6e0ae
docs: capture planning decisions + session 1 handoff ( #400 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 04:57:00 +00:00
jason.woltje
6f15a84ccf
docs: archive stale mission, scaffold CLI unification mission ( #399 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 04:47:54 +00:00
jason.woltje
c39433c361
chore: remove legacy @mosaicstack/cli package ( #398 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 04:39:46 +00:00
jason.woltje
257796ce87
Merge pull request 'chore: bump @mosaicstack/mosaic to 0.0.21 for republish' ( #397 ) from chore/bump-mosaic-0.0.21 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 04:12:05 +00:00
jarvis
2357602f50
chore: bump @mosaicstack/mosaic to 0.0.21 for publish
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-04 23:09:52 -05:00
jason.woltje
1230f6b984
ci: fail publish pipeline loudly on registry/auth/network errors ( #396 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 03:58:35 +00:00
jason.woltje
14b775f1b9
Merge pull request 'fix: populate KNOWN_PACKAGES for mosaic update command' ( #395 ) from fix/populate-known-packages-list into main
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
Reviewed-on: http://git.mosaicstack.dev/mosaicstack/mosaic-stack/pulls/395
2026-04-05 03:52:57 +00:00
jarvis
c7691d9807
fix: populate KNOWN_PACKAGES with all workspace packages for 'mosaic update'
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- Remove @mosaicstack/cli (absorbed into @mosaicstack/mosaic)
- Add all 21 remaining workspace packages so the multi-package
update checker actually covers every published package
2026-04-04 22:49:45 -05:00
jason.woltje
9a53d55678
Merge pull request 'fix: update Gitea org references from mosaic/ to mosaicstack/' ( #394 ) from fix/gitea-org-rename into main
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Reviewed-on: http://git.mosaicstack.dev/mosaicstack/mosaic-stack/pulls/394
2026-04-05 03:35:11 +00:00
jarvis
31008ef7ff
fix: update Gitea org references from mosaic/ to mosaicstack/
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- Update all package.json repo URLs (mosaic/mosaic-stack → mosaicstack/mosaic-stack)
- Update npm registry URLs (/api/packages/mosaic/npm → /api/packages/mosaicstack/npm)
- Update woodpecker publish destinations
- Update tools/install.sh registry and repo base URLs
2026-04-04 22:31:20 -05:00
jason.woltje
621ab260c0
fix(mosaic): resumable gateway install + prominent admin token ( #393 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/manual/publish Pipeline failed
ci/woodpecker/manual/ci Pipeline failed
2026-04-05 03:19:07 +00:00
jason.woltje
2b1840214e
Merge pull request 'fix: rename @mosaic/* packages to @mosaicstack/*' ( #392 ) from fix/rename-mosaic-scope-391 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 03:11:55 +00:00
jarvis
5cfccc2ead
fix(mosaic): remove unused hasUpdate variable in formatAllPackagesTable
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Fixes lint error:
@typescript-eslint/no-unused-vars on hasUpdate
2026-04-04 22:01:01 -05:00
jarvis
774b76447d
fix: rename all packages from @mosaic/* to @mosaicstack/*
...
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
- Updated all package.json name fields and dependency references
- Updated all TypeScript/JavaScript imports
- Updated .woodpecker/publish.yml filters and registry paths
- Updated tools/install.sh scope default
- Updated .npmrc registry paths (worktree + host)
- Enhanced update-checker.ts with checkForAllUpdates() multi-package support
- Updated CLI update command to show table of all packages
- Added KNOWN_PACKAGES, formatAllPackagesTable, getInstallAllCommand
- Marked checkForUpdate() with @deprecated JSDoc
Closes #391
2026-04-04 21:43:23 -05:00
jason.woltje
80994bdc8e
fix(packages): bump db/memory/queue for PGlite + adapter factories ( #389 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 02:20:23 +00:00
jason.woltje
2e31626f87
fix: simplify updater to @mosaic/mosaic only, add explicit tea repo/login flags ( #388 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 02:09:23 +00:00
jason.woltje
255ba46a4d
fix(packages): republish @mosaic/config and bump dependents ( #386 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 01:56:57 +00:00
jason.woltje
10285933a0
fix: retarget updater to @mosaic/mosaic ( #384 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 01:52:30 +00:00
jason.woltje
543388e18b
fix(mosaic): resolve framework scripts via import.meta.url ( #385 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Fixes #383 — resolveTool now uses fileURLToPath(import.meta.url). Adds package.json/framework subpath exports. Bumps @mosaic/mosaic to 0.0.18.
2026-04-05 01:41:46 +00:00
jason.woltje
07a1f5d594
Merge pull request 'feat(mosaic): merge @mosaic/cli into @mosaic/mosaic' ( #381 ) from fix/merge-cli-into-mosaic into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 01:11:33 +00:00
jarvis
c6fc090c98
feat(mosaic): merge @mosaic/cli into @mosaic/mosaic
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
@mosaic/mosaic is now the single package providing both:
- 'mosaic' binary (CLI: yolo, coord, prdy, tui, gateway, etc.)
- 'mosaic-wizard' binary (installation wizard)
Changes:
- Move packages/cli/src/* into packages/mosaic/src/
- Convert dynamic @mosaic/mosaic imports to static relative imports
- Add CLI deps (ink, react, socket.io-client, @mosaic/config) to mosaic
- Add jsx: react-jsx to mosaic's tsconfig
- Exclude packages/cli from workspace (pnpm-workspace.yaml)
- Update install.sh to install @mosaic/mosaic instead of @mosaic/cli
- Bump version to 0.0.17
This eliminates the circular dependency between @mosaic/cli and
@mosaic/mosaic that was blocking the build graph.
2026-04-04 20:07:27 -05:00
jason.woltje
9723b6b948
chore: bump @mosaic/cli and @mosaic/mosaic to 0.0.16 ( #379 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 00:52:09 +00:00
jason.woltje
c0d0fd44b7
refactor(storage): replace better-sqlite3 with PGlite adapter ( #378 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 21:58:14 +00:00
jason.woltje
30c0fb1308
fix: remediate npm deprecation warnings in @mosaic/gateway 0.0.3 ( #377 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 21:03:54 +00:00
jason.woltje
26fac4722f
fix: gateway install preserves npm prefix via registry flag ( #376 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 20:36:15 +00:00
jason.woltje
e3f64c79d9
chore: move gateway default port from 4000 to 14242 ( #375 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 20:17:40 +00:00
jason.woltje
cbd5e8c626
fix: scope Gitea registry to @mosaic packages only ( #374 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 19:09:14 +00:00
jason.woltje
7560c7dee7
fix: gateway install uses Gitea registry instead of npmjs ( #373 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-04 18:59:40 +00:00
jason.woltje
982a0e8f83
chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.11 ( #372 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 18:47:03 +00:00
jason.woltje
fc7fa11923
feat: local tier gateway with PGlite + Gitea-only publishing ( #371 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-04 18:39:20 +00:00
jason.woltje
86d6c214fe
feat: gateway publishability + npmjs publish script ( #370 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 18:07:05 +00:00
jason.woltje
39ccba95d0
feat: mosaic gateway CLI daemon management + admin token auth ( #369 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-04 18:03:12 +00:00
jason.woltje
202e375f41
Merge pull request 'fix: add build tools to CI install step for better-sqlite3 native bindings' ( #368 ) from feat/task-1775219952-fix-add-build-tools-to-ci-install-step-for-better-sqlite3 into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-03 15:41:23 +00:00
jarvis
d0378c5723
fix: add Alpine build tools before pnpm install in CI
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-04-03 09:13:25 -05:00
jason.woltje
d6f04a0757
Merge pull request 'fix: add build tools to CI install step for better-sqlite3 native bindings' ( #366 ) from fix/storage-sqlite-ci into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-03 13:41:04 +00:00
jason.woltje
afedb8697e
Merge pull request 'fix: allow better-sqlite3 build script in pnpm 10' ( #367 ) from fix/pnpm-build-scripts into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-03 13:11:07 +00:00
jarvis
1274df7ffc
fix: allow better-sqlite3 build script in pnpm 10
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-03 08:06:01 -05:00
jarvis
1b4767bd8b
fix: add build tools to CI install step for better-sqlite3 native bindings
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-04-03 07:41:39 -05:00
jason.woltje
0b0fe10b37
Merge pull request 'feat: storage abstraction retrofit — adapters for queue, storage, memory (phases 1-4)' ( #365 ) from feat/storage-abstraction into main
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-04-03 04:40:57 +00:00
jason.woltje
acfb31f8f6
fix: quality-rails Commander version mismatch + installer defaults ( #364 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-03 02:40:02 +00:00
jarvis
fd83bd4f2d
chore(orchestrator): Phase 4 complete — config schema + CLI lifecycle commands
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
381 tests passing (347 gateway + 34 CLI), 40/40 tasks clean
2026-04-02 21:38:40 -05:00
jarvis and Claude Opus 4.6
ce3ca1dbd1
feat(cli): add gateway start/stop/status lifecycle commands
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 21:37:20 -05:00
jarvis and Claude Opus 4.6
95e7b071d4
feat(cli): add mosaic gateway init command with tier selection wizard
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 21:35:32 -05:00
jason.woltje
d4c5797a65
fix: installer copies default framework files (AGENTS.md) to mosaicHome ( #363 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:34:43 +00:00
jason.woltje
70a51ba711
fix: all CLI script resolution uses bundled-first resolveTool() ( #362 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:28:07 +00:00
jason.woltje
db8023bdbb
fix: fwScript prefers npm-bundled scripts over stale deployed copies ( #361 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:21:58 +00:00
jason.woltje
9e597ecf87
chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.6 ( #360 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:13:37 +00:00
jason.woltje
a23c117ea4
fix: auto-migrate customized skills to skills-local/ on sync ( #359 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-03 02:11:03 +00:00
jason.woltje
0cf80dab8c
fix: stale update banner + skill sync dirty worktree crash ( #358 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:04:05 +00:00
jarvis and Claude Opus 4.6
04a80fb9ba
feat(config): add MosaicConfig schema + loader with tier auto-detection
...
ci/woodpecker/push/ci Pipeline failed
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 21:03:00 -05:00
jarvis
626adac363
chore(orchestrator): Phase 3 complete — local tier implemented (SQLite + keyword search + JSON queue)
...
ci/woodpecker/push/ci Pipeline failed
42 new tests: 4 queue, 18 storage, 20 memory
347 total tests passing
2026-04-02 20:56:39 -05:00
jarvis and Claude Opus 4.6
35fbd88a1d
feat(memory): implement keyword search adapter — no vector dependency
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:55:00 -05:00
jason.woltje
381b0eed7b
Merge pull request 'chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.4' ( #357 ) from chore/bump-0.0.4 into main
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/357
2026-04-03 01:51:55 +00:00
jarvis and Claude Opus 4.6
25383ea645
feat(storage): implement SQLite adapter with better-sqlite3
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:51:13 -05:00
jarvis
e7db9ddf98
chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.4
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-02 20:50:44 -05:00
jarvis and Claude Opus 4.6
7bb878718d
feat(queue): implement local adapter with JSON persistence
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:46:11 -05:00
jarvis
46a31d4e71
chore(orchestrator): Phase 2 complete — existing backends wrapped as adapters
ci/woodpecker/push/ci Pipeline was successful
2026-04-02 20:44:11 -05:00
jarvis and Claude Opus 4.6
e128a7a322
feat(gateway): wire adapter factories + DI tokens alongside existing providers
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:44:11 -05:00
jarvis and Claude Opus 4.6
27b1898ec6
refactor(memory): wrap pgvector logic as MemoryAdapter implementation
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:44:11 -05:00
jarvis and Claude Opus 4.6
d19ef45bb0
feat(storage): implement Postgres adapter wrapping Drizzle + @mosaic/db
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:44:10 -05:00
jarvis and Claude Opus 4.6
5e852df6c3
refactor(queue): wrap ioredis as bullmq adapter behind QueueAdapter interface
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:44:10 -05:00
jarvis
e0eca771c6
chore(orchestrator): Phase 1 complete — all interfaces defined
2026-04-02 20:44:10 -05:00
jarvis and Claude Opus 4.6
9d22ef4cc9
feat: add adapter factory + registry pattern for queue, storage, memory
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:44:10 -05:00
jarvis and Claude Opus 4.6
41961a6980
feat(memory): define MemoryAdapter interface types
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:44:10 -05:00
jarvis and Claude Opus 4.6
e797676a02
feat(storage): define StorageAdapter interface types + scaffold package
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:44:10 -05:00
jarvis and Claude Opus 4.6
05d61e62be
feat(queue): define QueueAdapter interface types
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-04-02 20:44:10 -05:00
jarvis
73043773d8
chore(orchestrator): Bootstrap storage abstraction retrofit
...
Mission: Decouple gateway from hardcoded Postgres/Valkey backends.
20 tasks across 5 phases. Estimated total: ~214K tokens.
Phase 1: Interface extraction (4 tasks)
Phase 2: Wrap existing backends as adapters (5 tasks)
Phase 3: Local tier implementation (4 tasks)
Phase 4: Config + CLI commands (4 tasks)
Phase 5: Migration + docs (3 tasks)
2026-04-02 20:44:10 -05:00
jason.woltje
0be9729e40
Merge pull request 'fix: syncDirectory same-path guard, nested .git exclusion, and sync stash handling' ( #356 ) from fix/idempotent-init into main
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/356
2026-04-03 01:42:18 +00:00
jarvis
e83674ac51
fix: mosaic sync — auto-stash dirty worktree before pull --rebase
...
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
git pull --rebase fails with 'cannot pull with rebase: You have
unstaged changes' when the skills repo has local modifications.
Fix: detect dirty index/worktree, stash before pull, restore after.
Also gracefully handle pull failures (warn and continue with existing
checkout) and stash pop conflicts.
2026-04-02 20:41:11 -05:00
jarvis
a6e59bf829
fix: syncDirectory — guard same-path copy and skip nested .git dirs
...
Two bugs causing 'EACCES: permission denied, copyfile' when source
and target are the same path (e.g. wizard with sourceDir == mosaicHome):
1. No same-path guard — syncDirectory tried to copy every file onto
itself; git pack files are read-only (0444) so copyFileSync fails.
2. excludeGit only matched top-level .git — nested .git dirs like
sources/agent-skills/.git were copied, hitting the same permission
issue.
Fixes:
- Early return when resolve(source) === resolve(target)
- Match .git dirs at any depth via dirName and relPath checks
- Skip files inside .git/ paths
Added file-ops.test.ts with 4 tests covering all cases.
2026-04-02 20:41:11 -05:00
jason.woltje
e46f0641f6
Merge pull request 'fix: make mosaic init idempotent — detect existing config files' ( #355 ) from fix/idempotent-init into main
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/355
2026-04-03 01:30:01 +00:00
jarvis
07efaa9580
chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.3
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-02 20:26:01 -05:00
jarvis
361fece023
fix: make mosaic init idempotent — detect existing config files
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
- mosaic-init bash script: detect existing SOUL.md/USER.md/TOOLS.md and
prompt user to keep, import (re-use values as defaults), or overwrite.
Non-interactive mode exits cleanly unless --force is passed.
Overwrite creates timestamped backups before replacing files.
- launch.ts checkSoul(): prefer 'mosaic wizard' over legacy bash script
when SOUL.md is missing, with fallback to mosaic-init.
- detect-install.ts: pre-populate wizard state with existing values when
user chooses 'reconfigure', so they see current settings as defaults.
- soul-setup.ts: show existing agent name and communication style as
defaults during reconfiguration.
- Added tests for reconfigure pre-population and reset non-population.
2026-04-02 20:20:59 -05:00
jason.woltje
80e69016b0
Merge pull request 'chore: bump all packages to 0.0.2 — drop alpha prerelease tag' ( #354 ) from chore/bump-0.0.2 into main
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/354
2026-04-03 01:12:24 +00:00
jarvis
e084a88a9d
chore: bump all packages to 0.0.2 — drop alpha prerelease tag
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Switches from 0.0.1-alpha.2 to 0.0.2. Clean semver, no prerelease
suffixes. We're still alpha (0.0.x range).
2026-04-02 20:03:55 -05:00
jason.woltje
990a88362f
Merge pull request 'feat: complete CLI command parity — coord, prdy, seq, upgrade' ( #352 ) from fix/complete-cli-parity into main
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/352
2026-04-03 00:52:36 +00:00
jarvis
ea9782b2dc
feat: complete CLI command parity — add coord, prdy, seq, upgrade
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
The #351 merge landed before the force-push with full commands.
This adds the missing subcommands:
- mosaic coord {init,status,mission,continue,run,smoke,resume}
→ delegates to tools/orchestrator/*.sh with --claude/--codex/--pi/--yolo
- mosaic prdy {init,update,validate,status}
→ delegates to tools/prdy/*.sh with --claude/--codex/--pi
- mosaic seq {check,fix,start}
→ sequential-thinking MCP management (native TS)
- mosaic upgrade {release,check,project}
→ delegates to tools/_scripts/mosaic-release-upgrade and mosaic-upgrade
Also removes duplicate prdy registration (was in both launch.ts and
the old registerPrdyCommand — now only in launch.ts).
2026-04-02 19:51:34 -05:00
jason.woltje
8efbaf100e
Merge pull request 'feat: unify mosaic CLI — single binary, no PATH conflict' ( #351 ) from feat/unify-mosaic-cli into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-03 00:41:06 +00:00
jarvis
15830e2f2a
feat!: unify mosaic CLI — native launcher, no bin/ directory
...
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
BREAKING CHANGE: ~/.config/mosaic/bin/ is removed entirely.
The mosaic npm CLI is now the only executable.
## What changed
- **bin/ → deleted**: All scripts moved to tools/_scripts/ (internal)
- **mosaic-launch → deleted**: Launcher logic is native TypeScript
in packages/cli/src/commands/launch.ts
- **mosaic.ps1 → deleted**: PowerShell launcher removed
- **Framework install.sh**: Complete rewrite with migration system
- **Version tracking**: .framework-version file (schema v2)
- **Migration v1→v2**: Auto-removes bin/, cleans old PATH entries
from shell profiles
## Native TypeScript launcher (commands/launch.ts)
All runtime launch logic ported from bash:
- Runtime prompt builder (AGENTS.md + RUNTIME.md + USER.md + TOOLS.md)
- Mission context injection (reads .mosaic/orchestrator/mission.json)
- PRD status injection (scans docs/PRD.md)
- Pre-flight checks (MOSAIC_HOME, AGENTS.md, SOUL.md, runtime binary)
- Session lock management with signal cleanup
- Per-runtime launch: Claude, Codex, OpenCode, Pi
- Yolo mode flags per runtime
- Pi skill discovery + extension loading
- Framework management (init, doctor, sync, bootstrap) delegates
to tools/_scripts/ bash implementations
## Installer
- tools/install.sh: detects framework by .framework-version or AGENTS.md
- Framework install.sh: migration system with schema versioning
- Forward-compatible: add migrations as numbered blocks
- No PATH manipulation for framework (npm bin is the only PATH entry)
2026-04-02 19:37:13 -05:00
jason.woltje
04db8591af
Merge pull request 'docs: add project README' ( #350 ) from docs/readme into main
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/350
2026-04-03 00:17:10 +00:00
jarvis
785d30e065
docs: add project README with install, usage, architecture, and dev guide
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-02 19:12:28 -05:00
jason.woltje
e57a10913d
chore: bump all packages to 0.0.1-alpha.2 ( #349 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-02 18:21:23 +00:00
jason.woltje
0d12471868
feat: add web search, file edit, MCP management, file refs, and /stop to CLI/TUI ( #348 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-02 18:08:30 +00:00
jason.woltje
ea371d760d
Merge pull request 'feat: unified install.sh + auto-update checker (deprecates mosaic/bootstrap)' ( #347 ) from feat/install-update-checker into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-02 05:41:07 +00:00
jarvis
3b9104429b
fix(mosaic): wizard integration test — templates path after monorepo migration
...
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Templates moved from packages/mosaic/templates/ to
packages/mosaic/framework/templates/ in #345 . The test's
existsSync guard silently skipped the copy, causing writeSoul
to early-return without writing SOUL.md.
2026-04-02 00:12:03 -05:00
jarvis
8a83aed9b1
feat: unify install.sh — single installer for framework + npm CLI
...
- tools/install.sh now installs both components:
1. Framework (bash launcher, guides, runtime configs) → ~/.config/mosaic/
2. @mosaic/cli (TUI, gateway client, wizard) → ~/.npm-global/
- Downloads framework from monorepo archive (no bootstrap repo dependency)
- Supports --framework, --cli, --check, --ref flags
- Delete remote-install.sh and remote-install.ps1 (redundant redirectors)
- Update all stale mosaic/bootstrap references → mosaic/mosaic-stack
- Update README.md with monorepo install instructions
Deprecates: mosaic/bootstrap repo
2026-04-02 00:12:03 -05:00
jarvis
2f68237046
fix: remove --registry from npm install to avoid 404 on transitive deps
...
The @mosaic scope registry is configured in ~/.npmrc. Passing --registry
on the install command overrides the default registry for ALL packages,
causing non-@mosaic deps like @clack/prompts to 404 against Gitea.
2026-04-02 00:11:42 -05:00
jarvis
45f5b9062e
feat: install.sh + auto-update checker for CLI
...
- tools/install.sh: standalone installer/upgrader, curl-pipe safe
(main() wrapper, process.argv instead of stdin, mkdir -p prefix)
- packages/mosaic/src/runtime/update-checker.ts: version check module
with 1h cache at ~/.cache/mosaic/update-check.json
- CLI startup: non-blocking background update check on every invocation
- 'mosaic update' command: explicit check + install (--check for CI)
- session-start.sh: warns agents when CLI is outdated
- Proper semver comparison including pre-release precedence
- eslint: allow __tests__ in packages/mosaic for projectService
2026-04-02 00:11:42 -05:00
jason.woltje
147f5f1bec
Merge pull request 'fix: remove stale bootstrap repo references' ( #346 ) from fix/stale-bootstrap-refs into main
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-04-02 02:27:49 +00:00
Jason Woltje
f05b198882
fix: remove stale bootstrap repo references from CLI error messages
...
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
Replace 'cd ~/src/mosaic-bootstrap && bash install.sh' with
'npm install -g @mosaic/mosaic' now that bootstrap is archived.
2026-04-01 21:26:53 -05:00
jason.woltje
d0a484cbb7
Merge pull request 'feat: complete bootstrap → monorepo migration (archive-ready)' ( #345 ) from feat/framework-migration-complete into main
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline failed
2026-04-02 02:24:33 +00:00
Jason Woltje
6e6ee37da0
feat: complete framework migration — PowerShell, adapters, guides, profiles, tests
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
Completes the bootstrap repo migration with remaining files:
- PowerShell scripts (.ps1) for Windows support (bin/ + tools/)
- Runtime adapters (claude, codex, generic, pi)
- Guides (17 .md files) and profiles (domains, tech-stacks, workflows)
- Wizard test suite (6 test files from bootstrap tests/)
- Memory placeholder, audit history
Bootstrap repo (mosaic/bootstrap) is now fully superseded:
- All 335 files accounted for
- 5 build config files (package.json, tsconfig, etc.) not needed —
monorepo has its own at packages/mosaic/
- skills-local/ superseded by monorepo skills/ with mosaic-* naming
- src/ already lives at packages/mosaic/src/
2026-04-01 21:23:26 -05:00
jason.woltje
53199122d8
Merge pull request 'feat: integrate framework files into monorepo' ( #344 ) from feat/framework-into-monorepo into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-02 02:20:17 +00:00
Jason Woltje
b38cfac760
feat: integrate framework files into monorepo under packages/mosaic/framework/
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Moves all Mosaic framework runtime files from the separate bootstrap repo
into the monorepo as canonical source. The @mosaic/mosaic npm package now
ships the complete framework — bin scripts, runtime configs, tools, and
templates — enabling standalone installation via npm install.
Structure:
packages/mosaic/framework/
├── bin/ 28 CLI scripts (mosaic, mosaic-doctor, mosaic-sync-skills, etc.)
├── runtime/ Runtime adapters (claude, codex, opencode, pi, mcp)
├── tools/ Shell tooling (git, prdy, orchestrator, quality, etc.)
├── templates/ Agent and repo templates
├── defaults/ Default identity files (AGENTS.md, STANDARDS.md, SOUL.md, etc.)
├── install.sh Legacy bash installer
└── remote-install.sh One-liner remote installer
Key files with Pi support and recent fixes:
- bin/mosaic: launch_pi() with skills-local loop
- bin/mosaic-doctor: --fix auto-wiring for all 4 harnesses
- bin/mosaic-sync-skills: Pi as 4th link target, symlink-aware find
- bin/mosaic-link-runtime-assets: Pi settings.json patching
- bin/mosaic-migrate-local-skills: Pi skill roots, symlink find
- runtime/pi/RUNTIME.md + mosaic-extension.ts
Package ships 251 framework files in the npm tarball (278KB compressed).
2026-04-01 21:19:21 -05:00
jason.woltje
f3cb3e6852
Merge pull request 'fix(web): add public/ directory — fixes Docker build COPY failure' ( #343 ) from fix/web-public-dir into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-01 18:09:40 +00:00
Jason Woltje
e599f5fe38
fix(web): add public/ directory — fixes Docker build COPY failure
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Kaniko fails when COPY --from=builder references a path that doesn't
exist. The web app had no public/ directory, causing build-web to fail
with 'no such file or directory' on the public assets COPY step.
2026-04-01 13:09:03 -05:00
jason.woltje
6357a3fc9c
Merge pull request 'fix(ci): use gitea_token secret for npm publish' ( #342 ) from fix/ci-npm-secret into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-01 17:51:32 +00:00
Jason Woltje
92998e6e65
fix(ci): use gitea_token secret for npm publish
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-04-01 12:51:06 -05:00
jason.woltje
2394a2a0dd
Merge pull request 'feat: npm publish pipeline + package versioning (0.0.1-alpha.1)' ( #341 ) from feat/npm-publish-pipeline into main
2026-04-01 17:47:10 +00:00
Jason Woltje
13934d4879
feat: npm publish pipeline + package versioning (0.0.1-alpha.1)
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Publish pipeline:
- Add publish-npm step to .woodpecker/publish.yml — publishes all
@mosaic/* packages to Gitea npm registry on main push/tag
- Requires gitea_npm_token Woodpecker secret (package:write scope)
- publish-npm runs after build, parallel with Docker image builds
- pnpm publish resolves workspace:* to concrete versions automatically
Package configuration:
- All 20 packages versioned at 0.0.1-alpha.1
- publishConfig added to all packages (Gitea registry, public access)
- files field added to all packages (ship only dist/)
- @mosaic/forge includes pipeline/ assets in published package
Meta package (@mosaic/mosaic):
- Now depends on @mosaic/forge, @mosaic/macp, @mosaic/prdy,
@mosaic/quality-rails, @mosaic/types
- npm install @mosaic/mosaic pulls in the standalone framework
Build fixes:
- Fix forge and macp tsconfig rootDir: '.' -> 'src' so dist/index.js
resolves correctly (was dist/src/index.js)
- Exclude __tests__ and vitest.config from build includes
- Clean stale build artifacts from old rootDir config
Required Woodpecker secret:
woodpecker secret add mosaic/mosaic-stack \
--name gitea_npm_token --value '<token>' \
--event push,manual,tag
2026-04-01 12:46:13 -05:00
jason.woltje
aa80013811
Merge pull request 'feat: mosaic-* skill naming, board/forge/prdy skills, doctor --fix auto-wiring' ( #340 ) from feat/mosaic-skills-doctor-wiring into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-01 17:29:39 +00:00
Jason Woltje
2ee7206c3a
feat: mosaic-* skill naming, new board/forge/prdy skills, doctor --fix auto-wiring
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Skills:
- Rename all repo skills to mosaic-<name> convention (jarvis -> mosaic-jarvis, etc.)
- Update frontmatter name: fields to match directory names
- New mosaic-board skill: standalone Board of Directors multi-persona review
- New mosaic-forge skill: standalone Forge specialist pipeline
- New mosaic-prdy skill: PRD lifecycle (init/update/validate/status)
Wizard (packages/mosaic):
- Add mosaic-board, mosaic-forge, mosaic-prdy, mosaic-standards, mosaic-macp
to RECOMMENDED_SKILLS
- Add new skills to SKILL_CATEGORIES for categorized browsing
Framework scripts (~/.config/mosaic/bin):
- mosaic (launcher): load skills from both skills/ and skills-local/ for Pi
- mosaic-doctor: add --fix flag for auto-wiring skills into all harnesses,
Pi skill dir checks, Pi settings.json validation, mosaic-* presence checks
- mosaic-sync-skills: add Pi as 4th link target, fix find to follow symlinks
in skills-local/, harden is_mosaic_skill_name() with -L fallback
- mosaic-link-runtime-assets: add Pi settings.json skills path patching,
remove duplicate extension copy (launcher --extension is single source)
- mosaic-migrate-local-skills: add Pi to skill_roots, fix find for symlinks
YAML fixes:
- Quote description values containing colons in mosaic-deploy and
mosaic-woodpecker SKILL.md frontmatter (fixes Pi parse errors)
2026-04-01 12:28:36 -05:00
jason.woltje
be74ca3cf9
feat: add Pi as first-class Mosaic runtime ( #339 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-01 17:02:23 +00:00
jason.woltje
35123b21ce
Merge pull request 'fix(ci): pass DATABASE_URL through Turbo to test tasks' ( #338 ) from fix/turbo-env-passthrough into main
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-03-31 04:03:29 +00:00
jason.woltje
492dc18e14
Merge pull request 'fix(db): add missing migration to Drizzle journal — fixes CI test failures' ( #337 ) from fix/ci-drizzle-migration-journal into main
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline failed
2026-03-31 03:03:45 +00:00
jarvis
a824a43ed1
fix(ci): pass DATABASE_URL through Turbo to test tasks
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-30 22:02:37 -05:00
jarvis
9b72f0ea14
fix(db): add CREATE EXTENSION vector before first migration using pgvector
...
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
The insights table uses vector(1536) but no migration enables the pgvector
extension. CI postgres (pgvector/pgvector:pg17) has the extension available
but it must be explicitly created before use.
Adds CREATE EXTENSION IF NOT EXISTS vector at the top of
0001_cynical_ultimatum.sql (the first migration referencing vector type).
2026-03-30 21:14:44 -05:00
jarvis
d367f00077
fix(db): add missing 0001_cynical_ultimatum to Drizzle migration journal
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
The migration file 0001_cynical_ultimatum.sql existed on disk but was not
registered in the Drizzle journal (_journal.json). This caused fresh-database
migrations (CI) to skip creating tables (agent_logs, insights, preferences,
skills, summarization_jobs), then 0002_nebulous_mimic.sql would fail trying
to ALTER the non-existent preferences table.
Fix: insert cynical_ultimatum at idx 1 in the journal and shift all
subsequent entries (idx 2-7).
Verified: pnpm test passes (347 tests, 35 tasks).
2026-03-30 21:09:34 -05:00
jason.woltje
31a5751c6c
Merge pull request 'feat(ci): Docker build+push pipeline for gateway and web images' ( #335 ) from fix/ci-docker-publish-test-dep into main
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline failed
2026-03-31 01:48:08 +00:00
jason.woltje
fa43989cd5
Merge pull request 'fix: parse VALKEY_URL into RedisOptions for BullMQ — fixes ECONNREFUSED 6379' ( #336 ) from fix/bullmq-valkey-url-port into main
ci/woodpecker/push/ci Pipeline failed
2026-03-31 01:45:37 +00:00
jason.woltje
1b317e8a0a
style: fix prettier formatting in plugins/macp (consolidation follow-up)
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-03-30 20:43:54 -05:00
jason.woltje
316807581c
fix: parse VALKEY_URL into RedisOptions object for BullMQ connection
...
BullMQ v5 RedisConnection constructor does:
Object.assign({ port: 6379, host: '127.0.0.1' }, opts)
When opts is a URL string (via 'as unknown as ConnectionOptions'),
Object.assign only copies character-index properties from the string,
so the default port 6379 was never overridden — causing ECONNREFUSED
against the wrong port instead of the configured 6380.
Fix: parse VALKEY_URL with new URL() and return a plain RedisOptions
object { host, port, ... } so Object.assign merges it correctly.
2026-03-30 20:42:03 -05:00
jarvis
3321d4575a
fix(ci): wait for postgres readiness before migration + tests
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-03-30 20:41:46 -05:00
jarvis
85d4527701
fix(macp): use sh instead of bash in gate-runner — Alpine Linux compatibility
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-03-30 20:31:39 -05:00
jarvis
47b7509288
fix(ci): add postgres service sidecar for integration tests
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-03-30 20:25:59 -05:00
jarvis
34fad9da81
fix(ci): remove build step from ci.yml — build only in publish pipeline
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-30 20:19:29 -05:00
jarvis
48be0aa195
fix(ci): separate publish pipeline — Docker builds independent of test failures
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-03-30 20:12:23 -05:00
jarvis
f544cc65d2
fix(ci): switch to Kaniko image builder using global gitea secrets
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-30 20:04:50 -05:00
jarvis
41e8f91b2d
fix(ci): decouple build/publish from test step — DB test requires external Postgres
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-30 20:00:35 -05:00
jarvis
f161e3cb62
feat(ci): add Docker build+push pipeline for gateway and web images
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-30 19:54:28 -05:00
jason.woltje
da41724490
Merge pull request 'fix: remove all hardcoded user paths — dynamic OC SDK resolution' ( #333 ) from fix/macp-dynamic-sdk-resolution into main
ci/woodpecker/push/ci Pipeline failed
2026-03-30 19:55:21 +00:00
Mos (Agent)
281e636e4d
fix: remove all hardcoded user paths from plugins — dynamic SDK resolution
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
- plugins/macp/src/index.ts: use createRequire + dynamic import() for OC SDK
- plugins/macp/src/acp-runtime-types.ts: local ACP runtime type definitions
- plugins/macp/src/macp-runtime.ts: DEFAULT_REPO_ROOT and PI_RUNNER_PATH use
os.homedir() instead of hardcoded /home/user/
- plugins/mosaic-framework/src/index.ts: removed hardcoded SDK import
- No hardcoded /home/ paths remain in any plugin source file
- Plugin works on any machine with openclaw installed globally
2026-03-30 19:55:00 +00:00
jason.woltje
87dcd12a65
Merge pull request 'fix: update MACP plugin paths from /home/jarvis to local environment' ( #332 ) from fix/macp-plugin-paths into main
ci/woodpecker/push/ci Pipeline failed
2026-03-30 19:47:11 +00:00
Mos (Agent)
d3fdc4ff54
fix: update MACP plugin paths from /home/jarvis to dynamic resolution
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
- plugins/macp/src/index.ts: updated OC SDK imports to local paths
- plugins/macp/src/macp-runtime.ts: DEFAULT_REPO_ROOT → mosaic-stack-new, PI_RUNNER_PATH updated
- plugins/macp/openclaw.plugin.json: default repoRoot description updated
- Removed stale tsconfig.tsbuildinfo with old path references
2026-03-30 19:46:52 +00:00
jason.woltje
9690aba0f5
Merge pull request 'feat: monorepo consolidation — forge, MACP, framework plugin, profiles/guides/skills' ( #331 ) from feat/monorepo-consolidation into main
ci/woodpecker/push/ci Pipeline failed
2026-03-30 19:44:23 +00:00
Mos (Agent)
10689a30d2
feat: monorepo consolidation — forge pipeline, MACP protocol, framework plugin, profiles/guides/skills
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
Work packages completed:
- WP1: packages/forge — pipeline runner, stage adapter, board tasks, brief classifier,
persona loader with project-level overrides. 89 tests, 95.62% coverage.
- WP2: packages/macp — credential resolver, gate runner, event emitter, protocol types.
65 tests, 96.24% coverage. Full Python-to-TS port preserving all behavior.
- WP3: plugins/mosaic-framework — OC rails injection plugin (before_agent_start +
subagent_spawning hooks for Mosaic contract enforcement).
- WP4: profiles/ (domains, tech-stacks, workflows), guides/ (17 docs),
skills/ (5 universal skills), forge pipeline assets (48 markdown files).
Board deliberation: docs/reviews/consolidation-board-memo.md
Brief: briefs/monorepo-consolidation.md
Consolidates mosaic/stack (forge, MACP, bootstrap framework) into mosaic/mosaic-stack.
154 new tests total. Zero Python — all TypeScript/ESM.
2026-03-30 19:43:24 +00:00
jason.woltje
40c068fcbc
Merge pull request 'fix(oc-plugin): MACP OC bridge — route through controller queue instead of Pi-direct' ( #330 ) from fix/macp-oc-bridge into main
ci/woodpecker/push/ci Pipeline failed
2026-03-30 15:48:12 +00:00
jarvis
a9340adad7
fix(oc-plugin): replace Pi-direct with MACP controller bridge in runTurn
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-30 10:33:32 -05:00
jason.woltje
5cb72e8ca6
Merge pull request 'feat(oc-plugin): MACP ACP runtime backend — sessions_spawn(runtime:macp)' ( #329 ) from feat/oc-macp-plugin-v2 into main
ci/woodpecker/push/ci Pipeline failed
2026-03-30 04:29:47 +00:00
jarvis
48323e7d6e
chore: update pnpm lockfile for plugins/macp
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-29 23:25:36 -05:00
jarvis
01259f56cd
feat(oc-plugin): add MACP ACP runtime backend
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-29 23:21:28 -05:00
jason.woltje
472f046a85
chore: Harness Foundation mission COMPLETE — v0.2.0 ( #327 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 01:29:05 +00:00
jason.woltje
dfaf5a52df
docs: add M7-003 through M7-007 Matrix architecture sections ( #326 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 01:26:16 +00:00
jason.woltje
93b3322e45
feat(M5-008,M6-001-005): session hardening tests + BullMQ job queue ( #324 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 01:21:58 +00:00
jason.woltje
a532fd43b2
feat(M6-006,M6-007,M7-001,M7-002): admin jobs API, job event logging, channel adapter interface, message protocol ( #325 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 01:21:03 +00:00
jason.woltje
701bb69e6c
feat(M4-013,M5-001,M5-002,M5-003): routing e2e tests, agent config loading, model+agent switching ( #323 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 01:09:09 +00:00
jason.woltje
1035d13fc0
feat(M5-004,M5-005,M5-006,M5-007): session-conversation binding, session:info broadcast, agent creation from TUI, and session metrics ( #321 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:58:07 +00:00
jason.woltje
b18976a7aa
feat(M4-009,M4-010,M4-011): routing rules CRUD, per-user overrides, agent capabilities ( #320 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:48:42 +00:00
jason.woltje
059962fe33
test(M3-012): provider adapter integration tests for all 5 providers ( #319 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:42:00 +00:00
jason.woltje
9b22477643
feat(routing): implement routing decision pipeline — M4-006 ( #318 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:41:04 +00:00
jason.woltje
6a969fbf5f
fix(ci)+feat(M3-010/011): skip DB-gated tests in CI + provider_credentials migration ( #317 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:34:31 +00:00
jason.woltje
fa84bde6f6
feat(routing): task classifier + default rules + CI test fixes — M4-004/005 ( #316 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:26:49 +00:00
jason.woltje
6f2b3d4f8c
feat(M3-005): ZaiAdapter for Z.ai GLM-5 provider ( #314 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:09:16 +00:00
jason.woltje
0ee6bfe9de
feat(routing): routing_rules schema + types — M4-001/002/003 ( #315 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:08:56 +00:00
jason.woltje
cabd39ba5b
chore: update TASKS.md — 25/65 done, Wave 5 in progress ( #312 )
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-23 00:02:14 +00:00
jason.woltje
10761f3e47
feat(providers): OpenRouter adapter + Ollama embedding support — M3-004/006 ( #311 )
...
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:38:09 +00:00
jason.woltje
08da6b76d1
feat(M3-003): OpenAI provider adapter for Codex gpt-5.4 ( #310 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:35:43 +00:00
jason.woltje
5d4efb467c
feat(M3-002): implement AnthropicAdapter for Claude Sonnet 4.6, Opus 4.6, and Haiku 4.5 ( #309 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:33:55 +00:00
jason.woltje
6c6bcbdb7f
feat(M3-007,M3-009): provider health check scheduler and Ollama embedding default ( #308 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:30:15 +00:00
jason.woltje
cfdd2b679c
chore: M1 + M2 milestones complete — 18/65 tasks done ( #307 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:21:20 +00:00
jason.woltje
34d4dbbabd
feat(M3-008): define model capability matrix ( #303 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:19:07 +00:00
jason.woltje
78d591b697
test(M2-007): cross-user data isolation integration test ( #305 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:16:50 +00:00
jason.woltje
e95c70d329
feat(M3-001): refactor ProviderService into IProviderAdapter pattern ( #306 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:16:45 +00:00
jason.woltje
d8ac088f3a
test(persistence): M1-008 verification — 20 integration tests ( #304 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:08:19 +00:00
jason.woltje
0d7f3c6d14
chore: Wave 2 complete — 14/65 tasks done ( #302 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:02:04 +00:00
jason.woltje
eddcca7533
feat(gateway): load conversation history on session resume (M1-004, M1-005) ( #301 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 21:00:13 +00:00
jason.woltje
ad06e00f99
feat(conversations): add search endpoint — M1-006 ( #299 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:45:50 +00:00
jason.woltje
5b089392fd
fix(security): M2-008 Valkey key audit — SCAN over KEYS, restrict /gc to admin ( #298 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:45:43 +00:00
jason.woltje
02ff3b3256
feat(tui): add /history command — M1-007 ( #297 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:41:27 +00:00
jason.woltje
1d14ddcfe7
chore: Wave 1 complete — fix merge conflicts, update task status ( #296 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:37:27 +00:00
jason.woltje
05a805eeca
fix(memory): scope InsightsRepo operations to userId — M2-001/002 ( #290 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:34:42 +00:00
jason.woltje
ebf99d9ff7
fix(M2-005,M2-006): enforce user ownership at repo level for conversations and agents ( #293 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:34:11 +00:00
jason.woltje
cf51fd6749
chore: mark M1-001/002/003 and M2-003/004 done ( #295 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:22:05 +00:00
jason.woltje
bb22857fde
fix(security): scope memory tools to session userId — M2-003/004 ( #294 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:19:19 +00:00
jason.woltje
5261048d67
feat(chat): persist messages to DB via ConversationsRepo (M1-001/002/003) ( #292 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:18:05 +00:00
jason.woltje
36095ad80f
chore: bootstrap Harness Foundation mission (Phase 9) ( #289 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 20:10:48 +00:00
jason.woltje
d06866f501
chore: mark P8-001/002/003 done in TASKS.md ( #223 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 18:13:02 +00:00
jason.woltje
02e40f6c3c
feat(web): conversation sidebar with search, rename, delete ( #222 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 13:10:03 +00:00
jason.woltje
de64695ac5
feat(web): design system — ms-* tokens, ThemeProvider, MosaicLogo, sidebar ( #221 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 12:57:24 +00:00
jason.woltje
dd108b9ab4
feat(auth): add WorkOS and Keycloak SSO providers (rebased) ( #220 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-21 12:57:07 +00:00
jason.woltje
f3e90df2a0
Merge pull request 'chore: mark P8-001/002/003 in-progress, P8-004 done' ( #219 ) from chore/tasks-p8-status into main
...
ci/woodpecker/push/ci Pipeline was successful
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/219
2026-03-21 12:30:03 +00:00
jason.woltje
721e6bbc52
Merge pull request 'feat(web): chat interface — model selector, keybindings, thinking display, v0 styled header' ( #216 ) from feat/ui-chat into main
...
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/216
2026-03-21 12:29:29 +00:00
jason.woltje
27848bf42e
Merge pull request 'chore: fix prettier formatting on markdown files' ( #215 ) from fix/prettier-format into main
...
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/215
2026-03-21 12:29:09 +00:00
jason.woltje
061edcaa78
Merge pull request 'feat(gateway): add Anthropic, OpenAI, Z.ai LLM providers (P8-002)' ( #212 ) from feat/p8-002-llm-providers into main
...
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/212
2026-03-21 12:28:50 +00:00
jason.woltje
cbb729f377
Merge pull request 'perf: gateway + DB + frontend optimizations (P8-003)' ( #211 ) from feat/p8-003-performance into main
...
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/211
2026-03-21 12:28:30 +00:00
jason.woltje
cfb491e127
Merge pull request 'feat(auth): add WorkOS and Keycloak SSO providers (P8-001)' ( #210 ) from feat/p8-001-sso-providers into main
...
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: http://git.mosaicstack.dev/mosaic/mosaic-stack/pulls/210
2026-03-21 12:27:48 +00:00
jason.woltje
20808b9b84
chore: mark P8-001/002/003 in-progress, P8-004 done — PRs open
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-19 22:14:14 -05:00
jason.woltje
fd61a36b01
chore: mark P8-001/002/003 in-progress, P8-004 done — PRs open
ci/woodpecker/push/ci Pipeline was successful
2026-03-19 22:13:43 -05:00
jason.woltje
c0a7bae977
chore: mark P8-001 in-progress (stop cron re-spawn)
2026-03-19 22:11:30 -05:00
jason.woltje
68e056ac91
feat(web): port chat UI — model selector, keybindings, thinking display, styled header
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-19 20:42:48 -05:00
jason.woltje
77ba13b41b
feat(auth): add WorkOS and Keycloak SSO providers
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-19 20:30:00 -05:00
jason.woltje and Claude Sonnet 4.6
307bb427d6
chore: add P8-001 scratchpad
...
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-03-19 20:18:59 -05:00
jason.woltje and Claude Sonnet 4.6
b89503fa8c
chore: fix prettier formatting on scratchpad files
...
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-03-19 20:18:59 -05:00
jason.woltje and Claude Sonnet 4.6
254da35300
feat(auth): add WorkOS + Keycloak SSO providers (P8-001)
...
- Refactor auth.ts to build OAuth providers array dynamically; extract
buildOAuthProviders() for unit-testability
- Add WorkOS provider (WORKOS_CLIENT_ID/SECRET/REDIRECT_URI env vars)
- Add Keycloak provider with realm-scoped OIDC discovery
(KEYCLOAK_URL/REALM/CLIENT_ID/CLIENT_SECRET env vars)
- Add genericOAuthClient plugin to web auth-client for signIn.oauth2()
- Add WorkOS + Keycloak SSO buttons to login page (NEXT_PUBLIC_*_ENABLED
feature flags control visibility)
- Update .env.example with SSO provider stanzas
- Add 8 unit tests covering all provider inclusion/exclusion paths
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-03-19 20:18:59 -05:00
jason.woltje
99926cdba2
chore: fix prettier formatting on markdown files
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-19 20:17:39 -05:00
jason.woltje
25f880416a
Merge pull request 'docs: add TASKS.md agent-column schema to AGENTS.md' ( #214 ) from chore/tasks-schema-agents-md into main
ci/woodpecker/push/ci Pipeline failed
2026-03-20 01:10:56 +00:00
jason.woltje
1138148543
docs: add TASKS.md agent-column schema to AGENTS.md (canonical reference)
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-19 20:10:45 -05:00
jason.woltje
4b70b603b3
Merge pull request 'chore: add agent model column to TASKS.md' ( #213 ) from chore/tasks-agent-column into main
ci/woodpecker/push/ci Pipeline failed
2026-03-20 01:08:29 +00:00
jason.woltje
2e7711fe65
chore: add agent model column to TASKS.md schema
...
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
Adds 'agent' column to specify which model should execute each task.
Values: codex | sonnet | haiku | glm-5 | opus | — (auto)
Pipeline crons use this to spawn the cheapest capable model per task.
Phase 8 tasks assigned: P8-001/002/003=codex, P8-004=haiku
2026-03-19 20:08:12 -05:00
jason.woltje
417a57fa00
chore: fix prettier formatting on pre-existing scratchpad (pre-push gate)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-18 21:35:04 -05:00
jason.woltje
714fee52b9
feat(gateway): add Anthropic, OpenAI, Z.ai LLM providers (P8-002)
2026-03-18 21:34:38 -05:00
jason.woltje
133668f5b2
chore: format BUG-CLI-scratchpad.md (prettier)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-18 21:27:14 -05:00
jason.woltje
3b81bc9f3d
perf: gateway + DB + frontend optimizations (P8-003)
...
- DB client: configure connection pool (max=20, idle_timeout=30s, connect_timeout=5s)
- DB schema: add missing indexes for auth sessions, accounts, conversations, agent_logs
- DB schema: promote preferences(user_id,key) to UNIQUE index for ON CONFLICT upsert
- Drizzle migration: 0003_p8003_perf_indexes.sql
- preferences.service: replace 2-query SELECT+INSERT/UPDATE with single-round-trip upsert
- conversations repo: add ORDER BY + LIMIT to findAll (200) and findMessages (500)
- session-gc.service: make onModuleInit fire-and-forget (removes cold-start TTFB block)
- next.config.ts: enable compress, productionBrowserSourceMaps:false, image avif/webp
- docs/PERFORMANCE.md: full profiling report and change impact notes
2026-03-18 21:26:45 -05:00
jason.woltje
cbfd6fb996
fix(web): conversation DELETE — resolve Failed to fetch TypeError ( #204 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:43:56 +00:00
jason.woltje
3f8553ce07
fix(cli): TUI polish — Ctrl+T, React keys, clipboard, version ( #205 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:40:18 +00:00
jason.woltje
bf668e18f1
fix(web): admin page role check — stop false redirect to /chat ( #203 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:38:25 +00:00
jason.woltje
1f2b8125c6
fix(cli): sidebar delete conversation — fix silent failure ( #201 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:36:46 +00:00
jason.woltje
93645295d5
fix(gateway): filter projects by ownership — close data privacy leak ( #202 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:35:45 +00:00
jason.woltje
7a52652be6
feat(gateway): Discord channel auto-creation on project bootstrap ( #200 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:32:14 +00:00
jason.woltje
791c8f505e
feat(gateway): /system override condensation — accumulate + Haiku merge ( #198 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:26:31 +00:00
jason.woltje
12653477d6
feat(gateway): project bootstrap — docs structure + default agent ( #190 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:12:24 +00:00
jason.woltje
dedfa0d9ac
fix(gateway): system override TTL 5min → 7 days ( #189 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-17 02:06:58 +00:00
jason.woltje
c1d3dfd77e
fix(cli): disable Ink exitOnCtrlC so double-press handler runs ( #188 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 13:55:19 +00:00
jason.woltje
f0476cae92
fix(cli): wire command:result + system:reload socket events in TUI ( #187 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 13:21:11 +00:00
jason.woltje
b6effdcd6b
docs: mark mission complete — 9/9 milestones, all ACs verified (v0.1.0) ( #186 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 03:51:21 +00:00
jason.woltje
39ef2ff123
feat: verify Phase 8 platform architecture + integration tests (P8-019) ( #185 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 03:43:42 +00:00
jason.woltje
a989b5e549
feat(cli): TUI autocomplete sidebar + fuzzy match + arg hints + input history (P8-017) ( #184 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 03:30:15 +00:00
jason.woltje
ff27e944a1
Merge pull request 'feat(gateway): WorkspaceService + ProjectBootstrapService + TeamsService (P8-015)' ( #183 ) from feat/p8-015-workspaces into main
ci/woodpecker/push/ci Pipeline was successful
2026-03-16 03:14:10 +00:00
jason.woltje and Claude Sonnet 4.6
0821393c1d
feat(gateway): WorkspaceService + ProjectBootstrapService + TeamsService (P8-015)
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- WorkspaceService: path resolution, git init/clone, directory lifecycle (create/delete/exists), user and team root provisioning
- ProjectBootstrapService: orchestrates DB record creation (via Brain) + workspace directory init in a single call
- TeamsService: isMember, canAccessProject, findAll, findById, listMembers via Drizzle DB queries
- WorkspaceController: POST /api/workspaces — auth-guarded project bootstrap endpoint
- TeamsController: GET /api/teams, /:teamId, /:teamId/members, /:teamId/members/:userId
- WorkspaceModule wired into AppModule
- workspace.service.spec.ts: 5 unit tests for resolvePath (user, team, fallback, env var, default)
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-03-15 22:06:01 -05:00
jason.woltje
24f5c0699a
feat(gateway): MosaicPlugin lifecycle + ReloadService + hot reload (P8-013) ( #182 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 03:00:56 +00:00
jason.woltje
96409c40bf
feat(gateway): /agent, /provider, /mission, /prdy, /tools commands (P8-012) ( #181 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 02:50:18 +00:00
jason.woltje
8628f4f93a
Merge pull request 'feat(gateway): SessionGCService three-tier GC + /gc command + cron (P8-014)' ( #179 ) from feat/p8-014-session-gc into main
ci/woodpecker/push/ci Pipeline was successful
2026-03-16 02:42:34 +00:00
jason.woltje and Claude Opus 4.6
b649b5c987
feat(gateway): SessionGCService three-tier GC + /gc command + cron (P8-014)
...
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Implements three-tier garbage collection for agent sessions:
- SessionGCService.collect() for immediate per-session cleanup on destroySession()
- SessionGCService.sweepOrphans() for daily cron sweep of orphaned Valkey keys
- SessionGCService.fullCollect() for cold-start aggressive cleanup via OnModuleInit
- /gc slash command wired into CommandExecutorService + registered in CommandRegistryService
- SESSION_GC_CRON (daily 4am) added to CronService
- GCModule provides Valkey (ioredis via @mosaic/queue) and is imported by AgentModule, LogModule, CommandsModule, AppModule
- 8 Vitest unit tests covering all three GC tiers
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected] >
2026-03-15 21:38:48 -05:00
jason.woltje
b4d03a8b49
Merge pull request 'feat(gateway): PreferencesService + /preferences REST + /system Valkey override (P8-011)' ( #180 ) from feat/p8-011-preferences into main
ci/woodpecker/push/ci Pipeline was successful
2026-03-16 02:35:38 +00:00
jason.woltje and Claude Sonnet 4.6
85aeebbde2
feat(gateway): PreferencesService + /preferences REST + /system Valkey override (P8-011)
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- PreferencesService: platform defaults, user overrides, IMMUTABLE_KEYS enforcement
- PreferencesController: GET /api/preferences, POST /api/preferences, DELETE /api/preferences/:key
- PreferencesModule: global module exporting PreferencesService and SystemOverrideService
- SystemOverrideService: Valkey-backed session-scoped system prompt override with 5-min TTL + renew
- CommandRegistryService: register /system command (socket execution)
- CommandExecutorService: handle /system command via SystemOverrideService
- AgentService: inject system override before each prompt turn, renew TTL; store userId in session
- ChatGateway: pass userId when creating agent sessions
- PreferencesService unit tests: 11 tests covering defaults, overrides, enforcement wins, immutable key errors
Co-Authored-By: Claude Sonnet 4.6 <[email protected] >
2026-03-15 21:32:03 -05:00
jason.woltje
a4bb563779
feat(gateway): CommandRegistryService + CommandExecutorService (P8-010) ( #178 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 02:10:31 +00:00
jason.woltje
7f6464bbda
feat(gateway): tool path hardening + sandbox escape prevention (P8-016) ( #177 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 02:02:48 +00:00
jason.woltje
f0741e045f
feat(cli): TUI slash command parsing + local commands (P8-009) ( #176 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 01:58:56 +00:00
jason.woltje
5a1991924c
feat(db): teams schema + preferences.mutable migration ( #175 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 01:46:43 +00:00
jason.woltje
bd5d14d07f
feat(types): CommandDef, CommandManifest, slash command socket events ( #174 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 01:41:39 +00:00
jason.woltje
d5a1791dc5
docs: agent platform architecture plan — augmentation + task breakdown ( #173 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-16 01:28:29 +00:00
jason.woltje
bd81c12071
docs: update TASKS.md and scratchpad for CLI command architecture ( #159 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 23:11:37 +00:00
jason.woltje
4da255bf04
feat(cli): command architecture — agents, missions, gateway-aware prdy ( #158 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 23:10:23 +00:00
jason.woltje
82c10a7b33
feat(cli): TUI complete overhaul — components, sidebar, search, branding ( #157 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 22:17:19 +00:00
jason.woltje
d31070177c
fix(ci): remove from_secret to unblock PR pipelines ( #156 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 21:48:51 +00:00
jason.woltje
3792576566
fix(web): add jsdom dependency and exclude e2e from vitest ( #155 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 20:00:53 +00:00
jason.woltje
cd57c75e41
chore(orchestrator): Phase 7 complete — v0.0.8 verified ( #154 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:50:15 +00:00
jason.woltje
237a863dfd
docs(deploy): add deployment guide and expand .env.example ( #153 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:46:38 +00:00
jason.woltje
cb92ba16c1
feat(web): Playwright E2E test suite for critical paths ( #152 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:46:13 +00:00
jason.woltje
70e9f2c6bc
docs: user guide, admin guide, dev guide ( closes #57 ) ( #151 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:40:44 +00:00
jason.woltje
a760401407
feat(admin): web admin panel — user CRUD, role assignment, system health ( #150 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:18:47 +00:00
jason.woltje
22a5e9791c
feat(coord): DB migration — project-scoped missions, multi-tenant RBAC ( #149 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:18:18 +00:00
jason.woltje
d1bef49b4e
feat(agent): session cwd sandbox, system prompt config, tool restrictions ( #148 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:15:05 +00:00
jason.woltje
76abf11eba
fix(cli): remove side-effect from agent:end state updater ( #133 ) ( #147 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:09:13 +00:00
jason.woltje
c4850fe6c1
feat(cli): add sessions list/resume/destroy subcommands ( #146 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 19:04:10 +00:00
jason.woltje
0809f4e787
feat(web): settings persistence — profile, preferences save to DB ( #124 ) ( #145 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:43:52 +00:00
jason.woltje
6a4c020179
feat(cli): add --model/--provider flags and /model /provider TUI commands ( #144 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:41:36 +00:00
jason.woltje
3bb401641e
feat(agent): skill invocation — load and execute skills from catalog ( #128 ) ( #143 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:36:58 +00:00
jason.woltje
54b821d8bd
feat(web): provider management UI — list, test, model capabilities ( #123 ) ( #142 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:33:55 +00:00
jason.woltje
09e649fc7e
feat(gateway): MCP client — connect to external MCP servers as agent tools ( #127 ) ( #141 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:28:31 +00:00
jason.woltje
f208f72dc0
feat(web): project detail views — missions, tasks, PRD viewer ( #122 ) ( #140 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:28:14 +00:00
jason.woltje
d42cd68ea4
feat(web): conversation management — search, rename, delete, archive ( #121 ) ( #139 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:20:15 +00:00
jason.woltje
07647c8382
feat(agent): expand tool registry — file, git, shell, web fetch ( #126 ) ( #138 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:17:17 +00:00
jason.woltje
8633823257
feat(gateway): add MCP server endpoint with streamable HTTP transport ( #137 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:11:50 +00:00
jason.woltje
d0999a8e37
feat(web): wire WebSocket chat with streaming and conversation switching ( #120 ) ( #136 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 18:09:14 +00:00
jason.woltje
ea800e3f14
chore(orchestrator): Phase 7 planning — 10-wave execution plan ( #135 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 17:47:55 +00:00
jason.woltje
5d2e6fae63
chore(orchestrator): rescope Phase 7 as Feature Completion, add Phase 8 ( #119 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 17:44:35 +00:00
jason.woltje
fcd22c788a
chore(orchestrator): rescope Phase 7 + add Phase 8 ( #118 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 17:32:37 +00:00
jason.woltje
ab61a15edc
fix(agent): register Ollama with api: openai-completions ( #117 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 17:10:32 +00:00
jason.woltje
2c60459851
fix(agent): pass dummy apiKey for Ollama provider registration ( #116 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 17:08:19 +00:00
jason.woltje
ea524a6ba1
fix(cli): add Origin header to auth requests ( #115 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 17:03:42 +00:00
jason.woltje
997a6d134f
feat(cli): add login command and authenticated TUI sessions ( #114 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 17:00:08 +00:00
jason.woltje
8aaf229483
chore: remove deprecated husky v9 shim lines ( #113 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 16:48:51 +00:00
jason.woltje
049bb719e8
fix(auth): add CORS headers to BetterAuth raw HTTP handler ( #112 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 16:47:27 +00:00
jason.woltje
014ebdacda
fix(auth): add trustedOrigins to BetterAuth for cross-origin web dashboard ( #111 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 16:44:20 +00:00
jason.woltje
72a73c859c
fix(gateway): CORS, memory userId from session, pgvector auto-init ( #110 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 16:40:28 +00:00
jason.woltje
6d2b81f6e4
fix(gateway): add missing @Inject() decorators causing silent startup hang ( #109 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 01:52:01 +00:00
jason.woltje
9d01a0d484
fix(gateway): load .env from monorepo root via dotenv ( #108 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 01:25:09 +00:00
jason.woltje
d5102f62fa
fix(ci): use from_secret syntax for Woodpecker v2 ( #107 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 01:16:36 +00:00
jason.woltje
a881e707e2
ci: enable Turbo remote cache + parallelize pipeline steps ( #106 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 01:14:56 +00:00
jason.woltje
7d04874f3c
chore(orchestrator): complete Phase 6 milestone v0.0.7 ( #105 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 01:07:14 +00:00
jason.woltje
9f036242fa
feat(cli): add prdy, quality-rails, and wizard subcommands ( #104 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 01:05:31 +00:00
jason.woltje
c4e52085e3
feat(mosaic): migrate install wizard from v0 to v1 ( #103 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 00:59:42 +00:00
jason.woltje
84e1868028
fix(gateway): resolve two startup bugs blocking E2E testing ( #102 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 00:45:28 +00:00
jason.woltje
f94f9f672b
feat(prdy): migrate @mosaic/prdy from v0 to v1 ( #101 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 00:44:02 +00:00
jason.woltje
cd29fc8708
feat(quality-rails): migrate @mosaic/quality-rails from v0 to v1 ( #100 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 00:23:56 +00:00
jason.woltje and Claude Opus 4.6
6e22c0fdeb
chore(orchestrator): complete Phase 5 milestone — v0.0.6
...
ci/woodpecker/push/ci Pipeline was successful
- P5-005 done: Telegram plugin wired, .env.example updated
- PR #99 merged, issue #45 closed
- Phase 5 complete, advancing to Phase 6
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected] >
2026-03-14 19:06:23 -05:00
jason.woltje
1f4d54e474
fix(gateway): wire Telegram plugin into gateway plugin host ( #99 )
...
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-15 00:05:27 +00:00
jason.woltje
b7a39b45d7
chore(tasks): mark P5-004 done
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 15:16:13 -05:00
jason.woltje
1bfdc91f90
Merge pull request 'feat(auth): P5-004 Authentik OIDC adapter via Better Auth genericOAuth' ( #97 ) from feat/p5-sso-authentik into main
ci/woodpecker/push/ci Pipeline failed
2026-03-13 20:15:50 +00:00
jason.woltje
58a90ac9d7
Merge pull request 'fix(gateway): ownership checks for TasksController findAll/create + MissionsController create' ( #98 ) from fix/task-mission-ownership into main
ci/woodpecker/push/ci Pipeline failed
2026-03-13 20:15:46 +00:00
jason.woltje
684dbdc6a4
fix(gateway): enforce task and mission ownership
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-13 14:43:33 -05:00
jason.woltje
e92de12cf9
feat(auth): add Authentik OIDC adapter
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Refs #96
2026-03-13 14:42:05 -05:00
jason.woltje
1f784a6a04
chore(tasks): mark P5-001, P5-003 done; P5-004 in-progress
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 14:33:16 -05:00
jason.woltje
ab37c2e69f
Merge pull request 'fix(ci): sequential steps + single install to prevent OOM on runner' ( #95 ) from fix/ci-sequential into main
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 18:13:21 +00:00
jason.woltje
c8f3e0db44
fix(ci): sequential steps + single install to prevent OOM on runner
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Each step was re-running pnpm install independently, and all quality
steps (typecheck, lint, format, test) ran in parallel. On merge commits
with more accumulated code this pushed the CI runner over its memory
limit (exit code 254 = OOM kill).
Fix:
- install once, share node_modules via Woodpecker workspace volume
- sequential execution: install → typecheck → lint → format → test → build
- corepack enable in each step (fresh container) but no redundant install
2026-03-13 13:10:30 -05:00
jason.woltje
02772a3910
Merge pull request 'fix(gateway): security hardening — auth guards, ownership checks, validation, rate limiting' ( #85 ) from fix/gateway-security into main
ci/woodpecker/push/ci Pipeline failed
2026-03-13 18:07:01 +00:00
jason.woltje
85a25fd995
fix: add plugin paths to tsconfig.typecheck.json for merged PluginModule
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 13:03:59 -05:00
jason.woltje
20f302367c
chore(gateway): align typecheck paths after rebase
2026-03-13 13:03:09 -05:00
jason.woltje
54c6bfded0
fix(gateway): security hardening — auth guards, ownership checks, validation, rate limiting
2026-03-13 13:03:09 -05:00
jason.woltje
ca5472bc31
chore: format docs files
2026-03-13 13:03:09 -05:00
jason.woltje
55b5a31c3c
fix(gateway): security hardening — auth guards, ownership checks, validation, rate limiting
2026-03-13 13:03:09 -05:00
jason.woltje
01e9891243
Merge pull request 'feat(plugins): P5-003 Telegram channel plugin' ( #93 ) from feat/p5-telegram-plugin into main
ci/woodpecker/push/ci Pipeline failed
2026-03-13 17:48:01 +00:00
jason.woltje
446a424c1f
Merge pull request 'feat(gateway): P5-001 plugin host module' ( #92 ) from feat/p5-plugin-host into main
ci/woodpecker/push/ci Pipeline failed
2026-03-13 17:47:59 +00:00
jason.woltje
02a0d515d9
fix(turbo): typecheck must depend on ^build so package types are available
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 12:38:55 -05:00
jason.woltje
2bf3816efc
fix(turbo): typecheck must depend on ^build so package types are available
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 12:38:54 -05:00
jason.woltje
96902bab44
feat(plugins): add Telegram channel plugin
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-13 12:05:42 -05:00
jason.woltje
280c5351e2
feat(gateway): add plugin host module
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline was successful
2026-03-13 12:04:42 -05:00
jason.woltje
9eb48e1d9b
feat(Phase 4): Memory & Intelligence — memory, log, summarization, skills ( #91 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:56:50 +00:00
jason.woltje
d83ebe65e9
verify(P3-008): Phase 3 web dashboard verification ( #90 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:37:43 +00:00
jason.woltje
4fe7d09e5c
feat(web): admin panel with session management ( #89 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:33:45 +00:00
jason.woltje
e44cb7e56a
feat(web): settings page with profile, providers, and models ( #88 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:31:51 +00:00
jason.woltje
fd4b7c2ba2
feat(web): project list and mission dashboard views ( #87 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:30:11 +00:00
jason.woltje
a1a1976b38
feat(web): task management with list view and kanban board ( #86 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:28:17 +00:00
jason.woltje
f0d1d4bafa
feat(web): chat UI with conversations and WebSocket streaming ( #84 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:25:28 +00:00
jason.woltje
600da70960
feat(web): wire auth pages with BetterAuth and route guards ( #83 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:21:33 +00:00
jason.woltje
780f85e0d6
feat(web): scaffold Next.js 16 dashboard with design system and auth client ( #82 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 13:18:09 +00:00
jason.woltje and Claude Opus 4.6
5d936d58a0
fix: add missing @Inject() decorators and fix coord workspace root detection
...
- Add @Inject() to all gateway constructor params (required without emitDecoratorMetadata)
- AgentService: ProviderService, CoordService
- RoutingService: ProviderService
- ProvidersController: ProviderService, RoutingService
- SessionsController: AgentService
- Fix coord controller ALLOWED_ROOTS to walk up to monorepo root (pnpm-workspace.yaml)
- Gateway now boots and serves all routes correctly
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-13 08:00:57 -05:00
jason.woltje
8da2759fec
fix: coord review remediations (path traversal, JSON parse, race condition) ( #81 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 03:43:49 +00:00
jason.woltje and Claude Opus 4.6
b03c603759
docs: mark Phase 2 complete — update manifest and scratchpad
...
Phase 0-2 all done. P2-007 closed via PR #79 . Mission advances to Phase 3.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 22:40:59 -05:00
jason.woltje
77da12a5ee
test: verify Phase 2 — routing + coord tests (P2-007) ( #79 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 03:40:07 +00:00
jason.woltje
7f6dc43a2d
feat: agent session management — metrics, channels, dispose (P2-006) ( #78 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 03:35:59 +00:00
jason.woltje
f3a7eadcea
feat: @mosaic/coord — migrate from v0, gateway integration (P2-005) ( #77 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 03:32:20 +00:00
jason.woltje
7f6815feaf
feat: tool registration — brain tools for agent sessions (P2-004) ( #76 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 03:18:45 +00:00
jason.woltje
7485f32e69
feat: agent routing engine — cost/capability matrix (P2-003) ( #75 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 03:13:50 +00:00
jason.woltje
95f95f54cf
feat: multi-provider support — Anthropic + Ollama (P2-002) ( #74 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 03:10:51 +00:00
jason.woltje
aa9ee75a2a
fix: auth handler + circular imports — Phase 1 verification (P1-009) ( #73 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 03:02:02 +00:00
jason.woltje
c54b69f7ce
feat: gateway CRUD routes — conversations, projects, missions, tasks (P1-005/006) ( #72 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 02:41:03 +00:00
jason.woltje
38897fe423
feat: auth middleware, brain data layer, Valkey queue (P1-002/003/004) ( #71 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 02:37:56 +00:00
jason.woltje
cbac5902db
fix: Phase 0 verification — CI gates green (P0-009) ( #70 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 02:28:38 +00:00
jason.woltje
4cd5cbf893
feat: Woodpecker CI pipeline + project docs (P0-007, P0-008) ( #69 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 02:25:31 +00:00
jason.woltje
6e3cccc812
feat(auth): @mosaic/auth — BetterAuth email/password setup ( #68 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 02:21:15 +00:00
jason.woltje
2b1723e898
feat(db): @mosaic/db — Drizzle schema, PG connection, migrations ( #67 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 02:17:18 +00:00
jason.woltje
573484c83e
fix: Jaeger image tag + remap PG/Valkey ports ( #66 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 02:06:00 +00:00
jason.woltje and Claude Opus 4.6
bf2cb3a271
docs: mark P0-002, P0-005, P0-006 done (PR #65 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 20:56:16 -05:00
jason.woltje
35e4e2e527
feat: foundation — Docker Compose, OTEL, shared types ( #65 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 01:55:33 +00:00
jason.woltje and Claude Opus 4.6
f6f05cf23a
docs: add FIX-03 agent session sandboxing task ( #64 )
...
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 20:49:05 -05:00
jason.woltje and Claude Opus 4.6
15352448d5
fix: switch gateway to ESM + explicit @Inject for tsx compatibility
...
Pi SDK is ESM-only. tsx (esbuild) doesn't emit decorator metadata,
so NestJS constructor injection fails without explicit @Inject().
- Set "type": "module" in gateway package.json
- Switch tsconfig to NodeNext module resolution
- Add @Inject(AgentService) to ChatController and ChatGateway
Tested end-to-end: REST /api/chat → Pi SDK → Anthropic → response OK.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 20:43:08 -05:00
jason.woltje and Claude Opus 4.6
c58003e5e3
docs: add gatekeeper review follow-up tasks (FIX-01, FIX-02)
...
- #62 : piSession.dispose() missing in destroySession
- #63 : React anti-pattern in TUI agent:end handler
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 20:36:17 -05:00
jason.woltje and Claude Opus 4.6
04528459ec
docs: update TASKS.md and scratchpad for communication spine completion
...
Mark P1-001, P1-007, P1-008, P2-001, P5-002, P6-005 as done (PR #61 ).
Add session 2 log entry for vertical slice delivery.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 20:34:26 -05:00
jason.woltje
4f84a01072
feat: communication spine — gateway, TUI, Discord ( #61 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 01:33:32 +00:00
jason.woltje and Claude Opus 4.6
888bc32be1
docs: mark P0-001 scaffold monorepo as done
...
PR #60 merged, issue #1 closed.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 20:12:44 -05:00
jason.woltje
6d0d288e31
feat(P0-001): scaffold monorepo structure ( #60 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-13 01:11:46 +00:00
jason.woltje and Claude Opus 4.6
339641352e
docs: record vertical slice reorder in scratchpad
...
Jason directed: build Pi TUI → Gateway → Discord communication
spine before backfilling horizontal layers.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 20:06:17 -05:00
jason.woltje and Claude Opus 4.6
e7f338e3a9
chore: planning gate — milestones, issues, and task breakdown
...
Break PRD into 8 milestones (Phase 0–7) with 59 issues on Gitea.
Populate TASKS.md, update mission manifest, initialize scratchpad.
Repo created at git.mosaicstack.dev/mosaic/mosaic-stack.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-12 19:51:51 -05:00