Changelog
Stable releases of @flexso/spexso, newest first — generated from the git tags when the docs are built. Experimental builds and per-release pages live under GitLab Releases.
1.20.9 — 2026-11-12
Features
- finish: write a release-note fragment per issue (#56)
- release-notes: spexso release-notes [version] [--publish] (#56)
- gitlab: upsertRelease for release notes (#56)
- release-notes: collect fragments into release-notes/{version}.md (#56)
- release-notes: parse and render fragments (#56)
- labels: skip-release-note (#56)
- factory,finish: train on the MR's branch, repair rebase conflicts, wait out a held line (#53 #54 #55)
Fixes
- release-notes: atomic collect, exact commit paths, stricter args and fragments (#56)
Other
- plan: release-note fragments implementation plan (#56)
- spec: release-note fragments design (#56)
1.20.8 — 2026-11-09
Features
- finish: the merge train repairs stale tests itself (#52)
- finish: skip the train rebase when main only gained [skip ci] commits
Fixes
- marathon: the window verb decides on a bundle itself (#48)
- rules: one req.error per request; detect refused V4 writes via the message model (#51)
- attempts: empty the ledger before a build so an issue never inherits strikes (#50)
- debt: harvest spexso-debt markers from YAML and .mtaext (#49)
1.20.7 — 2026-11-05
Fixes
- factory: reinstall when a pull changes the lockfile
1.20.6 — 2026-11-05
Features
- prototype: hold the issue with the redesign label while prototyping
- prototype,redesign,brainstorm: design a redesign from real UI5, not a Claude Design export
Fixes
- gitlab: long issue bodies go to glab through a file, not argv
- autopick: ### groups stay inside the acceptance criteria section
1.20.5 — 2026-11-05
Features
- marathon,factory: bundle ready issues into one branch, one review, one MR
Fixes
- cicd: prepare-release releases the branch tip
- brainstorm: refining an issue keeps the reporter's original text
- finish: push the docs commits without a pipeline on GitLab
- install: an update keeps the tools a project added to its agents
- gitlab: link --type blocks on CE falls back when glab reports the refusal on stdout
1.20.4 — 2026-11-04
Fixes
- factory: the test server files one bug per issue and never a duplicate
1.20.3 — 2026-11-04
Features
- redesign,brainstorm: request a redesign, design it in Claude Design, load it into the spec
- factory: the test server drives Playwright's Chromium, so cax31 works
- factory: a test server that browser-tests every issue awaiting a manual test
Fixes
- agents,templates: the control choice is a contract from spec to review
- rules: ux.md picks the control by data shape, not a table for everything
- factory: install the ponytail plugin on the server
Other
- research: Fiori UI quality in Spexso — why UIs are plain and what to change
1.20.2 — 2026-11-03
Fixes
- finish,factory: static checks in the finish gate; CI drift warning; tester round for test type errors
- cli: name the missing executable instead of "spawnSync glab ENOENT"
1.20.1 — 2026-11-02
Fixes
- factory: glab for the server's architecture; cax31 replaces cx33 as the backup
1.20.0 — 2026-11-02
Features
- factory: try every EU location before the backup type
- factory: start --type pins the server type; wait until Hetzner has one free
1.19.0 — 2026-11-02
Features
- factory: cx43 with cx33 as backup, 4 GB swap, TEST_MAX_WORKERS from real RAM
1.18.0 — 2026-11-02
Features
- factory: status issue with logs, webhook notifications, diagnosis on hand-off and stop
1.17.1 — 2026-10-30
Fixes
- factory: wait for the background issue runner; save work on hand-off; blocked is not stuck
1.17.0 — 2026-10-29
Features
- finish,marathon,start: the MR pipeline gates the merge train; the marathon stops the line
1.16.0 — 2026-10-29
Features
- finish,factory: the merge train repairs a red gate; the factory stops the line
1.15.1 — 2026-10-28
Fixes
- factory,marathon: skip needs:😗 issues; the sweep train-merges an open MR
1.15.0 — 2026-10-28
Features
- agents,factory: subagents reach skills and SAP MCP tools; the factory server installs them
1.14.0 — 2026-10-28
Features
- factory: readable journal and bypassPermissions on the server
- release: prepare-release infers the bump from the commits since the last stable tag
Fixes
- factory: keep the setup script on stdin away from claude, trust the project folder
- factory: put ~/.local/bin on PATH in the setup script
- factory: authenticate npm on the server, clearer error when the project has no SSH key
1.13.0 — 2026-10-28
Fixes
- factory: default server type cx33 — cx22 no longer exists at Hetzner
1.12.0 — 2026-10-28
Features
- factory: start/status/logs/stop — ensure the server over hcloud, drive it over ssh
- factory: PC-side building blocks — settings, remote parsing, env file, setup script
- factory: cloud-init — node, glab, claude, loop units, idle self-delete
- factory: factory run — spawn claude per iteration, state, stop file, SIGTERM
- factory: outer Ralph loop with rate-limit wait, breaker and stop
- factory: sweep interrupted issues and preflight a milestone without tokens
- factory: classify claude -p outcomes (ok, rate limit, auth, error)
- factory: groundwork — factory config, readyIssues milestone option, export removeWorktree
- handoff: replace team labels and hand off at deploy time (#36 parts 1+2)
- brainstorm: evidence-based dependency check — only proven blockers become a question
- architecture: /spexso-architecture — codebase survey, triage to tech-debt issues and ADRs
- wizard: /spexso-wizard — Node wizards for BTP/SaaS procedures
- kickstart: /spexso-kickstart — project interview to epic + sliced backlog + glossary MR
- brainstorm: domain glossary + frontier grilling via shared interview rulebook
Fixes
- links: blocking links on GitLab CE + blockers resolve on merge (closes #29, closes #30)
- providers: raise CLI maxBuffer to 64 MB so large backlogs sync (closes #38)
Other
- Merge branch 'feat/factory-hetzner-loop' into 'main'
- factory: design page, scenario, CLI reference, spec deviations
- factory: keep cloud-init LF on Windows checkouts
- plan: factory implementation plan
- spec: factory — Ralph loop on a self-deleting Hetzner server
- Merge branch 'feat/36-handoff-deploy' into 'main'
- Merge branch 'fix/29-ce-blocking-links' into 'main'
- Merge branch 'feat/wizard' into 'main'
- design: /spexso-architecture — codebase survey, triage to issues/ADRs
- design: /spexso-wizard — Node wizards for BTP/SaaS procedures
- Merge branch 'fix/38-cli-max-buffer' into 'main'
- Merge branch 'feat/kickstart-glossary' into 'main'
- design: /spexso-kickstart + shared interview rulebook
- design: domain glossary + frontier grilling for brainstorm
1.11.0 — 2026-10-27
Features
- marathon: open and close a run record; runner fires phase notes; fold stamps the train outcome
- observe: report --run cuts the session log to one marathon run
- observe: phase notes split each issue into plan/build/review/finish; the report lists its notes
- marathon: fold --status stamps the merge train outcome on the issue's log line
- marathon: run records in .spexso/marathon-runs for the dashboard's run screen
- autopick: runner-project CI template
- autopick: brainstorm proposes the label, setup asks to enable (default no)
- autopick: finish --train-merge --autopick queues the MR for auto-merge
- autopick: marathon --autopick, atomic branch claim in start
- autopick: runner entry point, enable/disable, eligible, triage
- autopick: sweep and preflight
- autopick: rubric
- autopick: GitLab PR exposes pipeline status and conflicts
- autopick: auto-pick label
- autopick: config defaults, off by default
Fixes
- marathon: an abandoned run ends at its last note and clears its stop
- observe: a running issue keeps its token window open
- marathon: readRuns skips files that are not run records
- autopick: runner template runs Claude Code on node 22 alpine, honours TARGET_BRANCH
- autopick: finish queues on the pushed SHA, skips CHANGELOG, hands off not_queued
- autopick: sweep hands a merged issue to the tester in one final write
- autopick: lost branch claim hands off
- autopick: sweep and preflight hardening
- autopick: finish step 4 routes --autopick to 4a before any merge
- install: gitignore transient .spexso artifacts, also on update
Other
- Merge branch 'feat/autopick' into 'main'
- Merge origin/main into feat/autopick: phase notes beside the autopick runner start
- Merge branch 'feat/marathon-runs' into 'main'
- observe: phase notes split issues, notes field, abandoned-run end time
- marathon run records, phase notes, observe report --run, the dashboard's run screen
- marathon-dashboard: 4d run-screen design and plan
- autopick: scenario page; modes, agents and marathon scenario point to auto-pick
- autopick: design page, commands, locking, labels
- plan: auto-pick implementation plan; spec moves the runner to its own project
- spec: auto-pick — online agent builds and merges easy issues
1.10.0 — 2026-10-21
Features
- observe: report --json with span timestamps and per-issue windows
- marathon: --milestone matches the bare marathon name
- sync: open spexso/ milestones land in the index as marathons
- facade: milestone list/create/close; issue update --milestone/--no-milestone
- contract: milestones in the tracker contract; fake in memory, Azure unsupported
- github: list, create and close milestones; assign an issue to one
- gitlab: list, create and close milestones; assign an issue to one
- milestones: spexso/ prefix helper
- mod: spexso-board band, pane and sync
- mod: spexso-board pure board logic + tests
Fixes
- marathon: clock-stamp marathon-log timestamps (#37)
- providers: milestone lookups survive >100 milestones and unknown states
- gitlab: resolve the milestone before any update so a missing one changes nothing
- mod: sync guard always resets; toast shows the first spawn error
- mod: spexso-board reads from the project root, real sync errors, sync guard
Other
- board-mod: the dashboard sends spexso commands into your Claude session
- research: session bridge replaces the headless runner; 4c plan
- research: eval-driven development study, acceptance & self-healing, EDD deck
- Merge branch 'spexso/issue-37' into 'main'
- board-mod: plan marathons from the dashboard
- plans: marathon dashboard 4b — planning actions
- board-mod: /spexso-marathons dashboard
- plans: marathon dashboard 4a — read-only board in spexso-board
- research: runner spike result — headless claude drives the dashboard UI
- milestones in the provider tables; sync and observe details
- marathons as spexso/ milestones, milestone commands, observe --json
- plans: marathon dashboard phase 1 — spexso milestones and run report
- research: marathon dashboard design
- sync: note that the spexso-board mod reads the index shape
- mod: spexso-board moves to the plugin-marketplace repo
- mod: spexso-board author for the plugin library
- board mod page
- mod: named fixtures so board tests type-check
1.9.0 — 2026-10-12
Features
- marathon: --issues and --milestone scope the run
1.8.1 — 2026-10-07
Features
- demo: demo.remoteUrl and --local/--remote target flags
- rules: Fiori MCP first for annotation-driven UI5 apps
- handoff: project labels on the tester hand-off
- cli: spexso update refreshes spexso files offline after an upgrade
- finish: hand merged issues to a tester instead of closing them
Fixes
- yolo: a solo --yolo run chains start → plan → build → review → finish
- feedback: target flexso/spexso, accept group access, scope the init command
- ci: prepare-release is non-blocking so pages still deploys
1.8.0 — 2026-09-29
Features
- release: cut stable releases from CI, register GitLab Releases, changelog page
1.7.5 — 2026-09-29
Features
- rulebook: /spexso-rulebook approves inbox lessons into one MR
- hooks: name the session after the issue on /spexso-<cmd> <id> (#24)
- review: rulebook inbox + admission test for rulebook proposals
- observe: token usage and optional cost in observe report
- build: parallel GREEN on by default
- cicd: quality gate, central-managed mode, and honest deploys
Fixes
- facade: pr create/update honour --description-file (#22)
Other
- research: park incident lookup - Cloud Logging read path blocked by SAML
- research: typo
- research: incident-lookup spike results + per-project CF_HOME
- research: rescope production feedback to /spexso-incident-lookup
- research: production-feedback design (incidents + tenant lookup)
- cicd: point the default template project at flexso/spexso-ci-templates
1.7.4 — 2026-09-01
Other
- setup: recommend ui5-modernization only when a legacy test tree is detected
- rules: Test Starter as the UI5 test setup, plus the QUnit 2 traps no linter catches
- rules: UI5 test section from the SAP QUnit/OPA5 guidelines
- rules: the four Jest+TypeScript rules worth keeping, and why the rest is not
- rules: ground the CAP test section in the official cds.test reference, for Jest
- rules: how to clean up a suite that already got slow, and cross-refs from cap/ui5
1.7.3 — 2026-09-01
Features
- rules: create every <domain>.local.md empty on init
- rules: baseline + local rulebook pair, so updates stop colliding with tuning
- tests: draw the line on what earns a test — clause ceiling + cost ladder
Other
- correct the release story — tag-driven in the README, no repo CHANGELOG
- explain private @flexso npm registry setup at every install site
1.7.2 — 2026-07-23
Features
- rules: fold official SAPUI5 best-practices pages into ui5.md + test.md
Fixes
- rules: refresh stale ux.md consumer note + retired fiori-design URL
1.7.1 — 2026-07-23
Features
- portability: tier 5 — doctrine/observe/deny rails on opencode + codex, skills-standard audit
- verification: tier 4 — assertion gate, clause rubric, mutation gate, scout decline, analyze/converge
- rails: marathon orchestration moves from prose to code + calibration sensor (tier 2+3)
- hardening: tier 1 — fail-loud sync, worktree reap, prose precision, LSP (9-agent batch)
- marathon: size-score budget replaces the parallel issue count
- marathon: team decisions — recommended parallel.issues 3, XL builds solo
- marathon: --preview --deep shows the real wave-cut (A6 step 4)
- marathon: fence guard + hotspots in wave-cut and merge train (A6 step 3)
- marathon: parallel issues — plan-wave, wave-cut, batch-spawn (A6 step 2)
- finish: merge train — split finish + rebase-first gate (A6 step 1)
Fixes
- marathon: pre-plan path must be absolute; last parallel.issues ref
Other
- research: deep-research report — next improvement round (post-A6)
- research: mark A6 as shipped in the roadmap
1.7.0 — 2026-07-22
Features
- skills: parallel RED phase + batch-spawn of independent tasks (waves)
- waves: deterministic wave planner + batch attempts + parallel config
1.6.0 — 2026-07-22
Features
- observe: phase/glue breakdown, CLI counters, re-read hotspots, span fix
Other
- refresh local permission grants
- research: add reference material behind the 2026-07 research
- research: latency root-cause analysis + ruflo review (performance.md)
- skills: trim redundant tracker calls, test runs and pushes per issue
- providers: link-lazy issue lists and single-call sync (N+1 fix)
- policy: invoke hooks via local node entrypoint instead of npx
1.5.0 — 2026-07-11
Features
- review: systemic-lesson rulebook promotion with human gate (colleague-agents A4)
- templates: BTP service + tenant registries with planner impact checks (colleague-agents A3)
- rules: UI5 incident-derived pitfalls + proven patterns + floorplan-compliance check (colleague-agents A2)
- agents: reviewer calibration + MCP efficiency discipline (colleague-agents A1+A5)
- finish: Socratic learning card per shipped issue (nicoharness N6)
- doctrine: injected cross-cutting doctrine via SessionStart/SubagentStart hooks (nicoharness N5)
- debt: spexso-debt markers + harvested committed ledger (nicoharness N4)
- models: size::label -> dispatch-model dial + spexso model verb (nicoharness N3)
- attempts: per-task time budget rail via budgets.perTaskMinutes (nicoharness N2)
- observe: ship async observe hooks + gitignore + docs (nicoharness N1)
- cli: spexso observe — hook logger + latency report (nicoharness N1)
- observe: JSONL run logging + deterministic latency report (nicoharness N1)
- providers: Azure DevOps best-effort tier (research G3)
- providers: capabilities() convergence, fake adapter, golden shape fixtures (research G1)
- review: EARS drift check + hard length budgets (research M5+M6)
- finish: archive the spec to specs/ on merge (research M4)
- templates: bugfix-spec track — Current/Expected/Unchanged (research M3)
- cli: spexso constitution — one-page project principles, code-enforced (research M2)
- templates: EARS acceptance criteria with clause-to-test traceability (research M1)
- init: AGENTS.md canonical flip (research P4)
- build: Codex target emitter (research P3)
- build: opencode target emitter + init --harness (research P2)
- sap: SAP knowledge layer Tiers 0-2 (research T9)
- rules: ship abap.md and wire the ABAP docs MCP (research T5)
- agents: per-agent reasoning effort via config.json + agents sync (#16)
- commands: orchestration flags --base/--setup-only/--no-merge (#17)
- finish: derive conventional-commit type from issue type label
- cicd: rewrite CICD-SETUP checklist for tag-based releases
- cicd: cicd-init generates versioning config and release checklist
- cicd: tag-based release flow in pipeline template (release stage, tag deploys)
- cicd: add .versionrc.json scaffold template
- cicd: add commit-and-tag-version updaters for mta.yaml and manifest.json
- providers: implement the extended verb surface for GitHub and Azure DevOps
- cli: mirror glab's command surface in spexso verbs, fix broken glab mappings
- demo: /spexso-demo slash command (Playwright e2e runner)
- demo: spexso demo-env CLI verb
- demo: demo-env remote passthrough + id guard
- demo: demo-env starts the app + waits for ready; pid file
- demo: demo-env config read + local probe-up path
- platform: register azure tracker + code adapters
- providers: azure code adapter (az repos pr; comment/ci gated)
- providers: azure boards + wiki capability-gated skips; remove notImpl
- providers: azure dependency links via native relations
- providers: azure tracker write methods (tag-based)
- providers: azure tracker read methods + tag-based normalization
- providers: azure CLI seam + tracker identity surface
- platform: register github tracker + code adapters
- providers: github code adapter (gh pr methods; ci unsupported)
- providers: github boards (capability-gated skip) + wiki via .wiki.git
- providers: github dependency links via issue-body emulation
- providers: github tracker write methods
- providers: github tracker read methods + normalization
- providers: github CLI seam + tracker identity surface
- facade: provider-agnostic issue/pr/comment/link/board/wiki/whoami verbs
- platform: add getCode() resolver for the code slot
- providers: gitlab code adapter (PR methods + ciTemplate)
- providers: gitlab boards/wiki; boards.js delegates to adapter
- providers: gitlab dependency links getLinks/createLink
- providers: gitlab tracker write methods; labels.js delegates to adapter
- providers: gitlab tracker read methods + normalization
- providers: gitlab CLI seam + normalized error helper
- release: interactive npm run release with safety guards
- release: compute stable promotion plan
- release: compute next experimental tag
- release: parse tag list into release state
- release: infer bump level from conventional commits
- release: add semver utilities
- cli: add spexso changelog verb
- changelog: generate changelog from a git range
- changelog: render grouped commits to markdown
- changelog: group commits by type
- changelog: parse conventional-commit subjects
- init: write two-slot tracker/code config on init
- cli: add spexso commit-ref verb
- platform: add tracker resolver and commit-ref logic
- providers: add gitlab tracker adapter identity surface
- config: add loadConfig + getRemoteUrl glue
- config: add buildInitialConfig for spexso init
- config: resolve raw config into tracker/code slots with safe defaults
- config: detect provider from git remote url
Fixes
- docs: cicd spec reference as repo path — superpowers excluded from site build
- docs: architecture precision — gitignore list, async scope, hyphenated filenames
- docs: setup-boards label-count check works from a target project
- research: docs-audit design-section counts reconciled with enumerated verdicts
- quickstart: ABAP page — reviewer-only rulebook claim + review auto-fix caveat
- review: Windows-safe rulebook-lesson issue body + promotion commit wording + report slot
- templates: 7th tenant red flag (temporary scope) + spexso vocabulary
- review: floorplan drift is a compliance check, not an advisory UX finding
- agents: MCP-first bridge in builder + calibration wording refinements
- research: Tier 7 entry names the correct branch
- finish: mkdir docs/learning on first card + unified filename token + commit wording
- doctrine: CLAUDE_PROJECT_DIR-aware hook root + sharper scope wording + compact matcher
- debt: comment-anchored marker regex + XML support + sorted OS-stable ledger + build-dir skips
- models: xl dials to opus + reviewer fallback matches documented sonnet default
- providers: shell-free argv for all gh calls + id guards (research G2)
- planner: no verification-only tasks (research T7)
- cli: shell-free git log in changelog; drop dead execSync import (research T10)
- cicd: abaplint junit artifact needs --outformat, not --format (research T9)
- providers: shell-free argv for all glab calls + facade id validation (research T10)
- agents: capped lint gate, YAGNI line, tester escape valve (research T8)
- build: scope verification to the change (research T7)
- cli: /spexso-demo phantom flags, doc-count drift, version hardcode (research T6)
- build: config-driven test commands, kill the Jest hardcode (research T4)
- setup: drop the superpowers hard requirement (research T3)
- build: terminal states for RED/GREEN-impossible gates (research T2)
- build: code-enforced attempt counters (research T1)
- cli: pass issue bodies shell-free and add --description-file (#18)
- cicd: correct release-notes extraction and resolve cross-doc inconsistencies
- cicd: robust manifest discovery and hardened cicd-init checklist
- cicd: full-history clone for release bump, hardened create-release
- cicd: fail loud when version fields are missing in mta.yaml/manifest.json
- publish: point publishConfig registry at flexso.gitlab.host (not gitlab.com)
- demo: kill the app's process group on cleanup (detached leader)
- demo: waitForReady skips final sleep; cover no-startCommand path; assert mode
- providers: azure listIssues honors assignee + explicit open-state filter
- providers: azure createPR prefers web url; doc labels/squash; cover merge flags + commentPR
- providers: azure links rename to LINK_TYPE_MAP, flag relation-direction risk, cover all link types
- providers: azure createIssue field quoting + url parse; updateIssue tag merge
- providers: azure listIssues fetches full records for stub rows; parse ssh remote
- providers: github mergePR defaults to --merge for non-interactive merges
- providers: github pushWiki cleans temp clone + skips empty commit
- providers: make github createLink idempotent
- providers: gh-cli shJson via module.exports.sh; assert autoMerge flag
- sync: keep numeric ids in index.json for backward compat with prose lookups
- facade: guard required ids/flags with clear errors; document arg form
- providers: createPR id parse falls back to trailing iid (match createIssue)
- providers: escape board name in syncBoards; document contract; tighten tests
- providers: guard setStage id; keep stage name in unchanged msg; doc updateIssue scope
- providers: guard getProjectPath + getIssue against missing data
- providers: drop dangling em-dash in auth error for unknown provider
- release: exact remote tag match + cross-platform shortLog format
- release: compareCore throws a descriptive error on invalid version
- changelog: pipe git stderr in commitSubjects for clean error output
- changelog: restrict commit type to letters and scope to a single token
- cli: guard commit-ref against missing id; use string id in platform tests
- providers: gitlab detect via host-based detectProvider; freeze capabilities
- config: fill provider on partial slots; extract default constants
- config: detect provider from hostname to avoid path false-positives
Other
- Merge branch 'spexso/docs-site-revamp' into 'main'
- site: exclude internal superpowers artifacts from the public build
- design: audit fixes — contradictions resolved, stale pages current
- framework: audit fixes — labels, rails, quickstart links
- scenarios: audit fixes — current labels, rails, new mechanisms
- research: full docs-site audit findings
- home: current counts + quickstart links, guarded by doc-counts test
- quickstart: ABAP quickstart — honest knowledge-layer positioning
- quickstart: prerequisites block — first run must succeed
- quickstart: CAP+UI5 quickstart + Get-started navigation
- plan: docs-site revamp implementation plan
- spec: docs site revamp design — quickstarts + full audit + guard test
- Merge branch 'spexso/colleague-agents-adoption' into 'main'
- Merge branch 'spexso/nicoharness-adoption' into 'main'
- templates: unify infrastructure-blocker wording on 'the plan'
- research: record colleague-agents adoption A1-A7 in the backlog
- plan: colleague-agents adoption plan (A1-A7)
- reviewer upgrade is manual (never size-dialed) + observe report runs from project root
- research: record nicoharness adoption N1-N6 + deferred follow-ups N7-N10
- observe: npx install-safety note + accurate JSONL example + hooks-check comment
- plan: nicoharness adoption implementation plan (N1-N6)
- Merge branch 'spexso/research-phase-5' into 'main'
- parity: P3 against gh and az stubs (research G2+G3 verification)
- Merge branch 'spexso/research-phase-4' into 'main'
- canaries: guard the Phase 4 load-bearing prose (research M1-M6)
- Merge branch 'spexso/research-phase-3' into 'main'
- Merge branch 'spexso/research-phase-2' into 'main'
- Merge branch 'spexso/research-phase-1' into 'main'
- Merge branch 'spexso/research-phase-0' into 'main'
- gitignore Level 2/3 runner scorecards
- evals: Level 2/3 harness — parity runner, A/B probes, release gate (research F2+F3+F4)
- structure: manifest validation + install smoke via glab stub (research F1)
- prose: action vocabulary + portable shell, canary-phrase check (research P1)
- build: src/ canonical -> dist/ generated, byte-identical install (research P1)
- research: add modernization research deliverables
- add tag-based release CI/CD implementation plan
- align lifecycle, CLAUDE.md snippet and spec location with release flow
- cicd: update setup scenario and framework standard for tag-based releases
- cicd: rewrite design page for tag-based release flow
- ci: verify new cicd scaffold files exist
- scaffold: migrate prose layer from raw glab calls to spexso verbs
- /spexso-demo command (Playwright e2e demo runner)
- private @flexso registry onboarding docs + publishConfig host fix
- onboarding: configure the private @flexso GitLab npm registry before install
- demo: document /spexso-demo + demo-env
- demo: CI scaffold check + CLAUDE.md snippet for /spexso-demo
- plan: /spexso-demo implementation plan
- spec: /spexso-demo design (Playwright e2e demo runner)
- Azure DevOps adapter (multi-platform sub-spec 3, experimental)
- providers: azure adapter implemented (experimental, unverified az syntax)
- plan: azure adapter (multi-platform sub-spec 3)
- GitHub adapter (multi-platform sub-spec 2, experimental)
- providers: github adapter implemented (experimental, mock-tested)
- providers: cover github updateIssue close path + setStage input guards
- providers: consolidate duplicate tracker-contract require
- plan: github adapter (multi-platform sub-spec 2)
- multi-platform foundation Plan 2 (GitLab adapter + façade verbs)
- providers: fix accuracy — getProjectPath, facade routing, detection, write-result shapes
- providers: document the multi-platform adapter layer + facade verbs
- smoke: assert new verbs routed and CLI still loads
- sync: progress notice, hoist mapLinks, document active stages; broaden tests
- sync: consume tracker adapter; index format unchanged
- platform: restore registry roadmap comments for tracker + code
- providers: cover link state + createLink default; document type map
- contract: strengthen Issue/PR invariants; fix assert anti-pattern
- contract: shared adapter interface + normalized-shape harness
- plan: multi-platform foundation Plan 2 (gitlab adapter + façade)
- Merge branch 'feat/release-helper' into 'main'
- bump to node:22-alpine and install git in test job
- framework: clarify re-baseline bump is inferred, not always minor
- framework: document npm run release helper
- release: cover patch-level re-baseline in promotePlan
- plan: interactive release helper implementation plan
- spec: interactive release helper (npm run release)
- framework: add releasing runbook + framework rule note
- tag-driven publish to @latest and @experimental
- plan: release-management implementation plan
- spec: release management — stable + experimental channels
- Merge branch 'feat/multi-platform-support' into 'main'
- release: bump version to 1.5.0
- require node >=18.11 for node --test auto-discovery
- design: document two-slot config schema in storage
- run npm test in the test stage
- add node:test runner and npm test script
- plan: foundation platform-spine implementation plan
- spec: design multi-platform support (GitLab/GitHub/Azure/CALM)
- presentation: change request to add uncovered commands as 2 slides
- claude-ai: add advisory Project setup kit
- presentation: add slide-by-slide layout for the intro talk
- presentation: add Topping Election spec + acceptance criteria
- presentation: translate Spexso intro materials to English
- presentation: add speaker notes for Spexso intro talk
- presentation: Spexso intro talk + Beleg-verkiezing demo script
- plan: language-agnostic core + UI5 clone-listener rule
- spec: language-agnostic core + UI5 clone-listener rule design
1.4.0 — 2026-06-06
Features
- agents: MCP-first lookups + run_ui5_linter as UI done gate (closes #2)
- rules: consolidate Fiori design rules into ux.md, wire planner+builder
- spexso: domain rulebooks, ADR auto-capture, agent language policy
- spexso-builder: add domain awareness (skills + ui5-mcp/cds-mcp)
- spexso-reviewer: run staticChecks project-wide, HIGH no auto-rewrite
- spexso-setup: recommend ui5 + cds-mcp plugins; delegate static checks
- spexso-build: add STATIC CHECKS gate + post-commit nudge
- spexso: add /spexso-checks slash command
- static-checks: add lib/static-checks.js detection module
- spexso: add /spexso-feedback slash command
- spexso-setup: provision boards before sync in Phase 4
- spexso: add /spexso-boards-init slash command
- init: call createBoards() after createLabels()
- cli: add npx spexso boards subcommand
- boards: add lib/boards.js with 3 default kanban boards
- labels: add needs::attention used by marathon failures
- spexso-setup: offer CI/CD template during setup
- spexso: add /spexso-cicd-init command
- cicd: add CICD-SETUP.md template (developer checklist)
- cicd: add gitlab-ci.yml template for 3-tier BTP CF deploy
- dependency tracking phase 1 + roadmap for phases 2-3
- spexso: marathon dispatches per-issue subagent with circuit breaker
- spexso: add spexso-issue-runner subagent for marathon context isolation
- split marathon into own command, add dependency-aware ordering
- add /clear between yolo marathon issues to prevent context bleed
- auto-add .spexso/ to Jest testPathIgnorePatterns during /spexso:setup
- add yolo pre-marathon queue summary and conflict-resolution warning
- auto-merge MR in /spexso:finish with rebase fallback and test checklist
- add targetBranch question to /spexso:setup
- create .spexso/config.json with targetBranch on init
- add needs::manual-test and needs::conflict-resolution labels
Fixes
- stage: enforce single-value stage:: labels via
spexso stage(closes #1) - spexso-issue-runner: drop redundant conflict field; status enum suffices
- invoke spexso CLI via npx everywhere
- improve conflict-resolution warning message in yolo loop
- add Windows fallback for worktree cleanup in /spexso:finish
- wrap node -e assertion in literal block scalar to avoid YAML parse error
Other
- framework: add repo-local self-development rulebook
- raise version number
- Merge branch 'static-checks-gate' into main
- yolo-marathon: note that static-check failures follow 3-strike rule
- review: document reviewer-phase static checks (HIGH, no auto-rewrite)
- tdd: document static-checks gate between GREEN and COMMIT
- link the add-static-check scenario from the index
- add /spexso-checks to commands table
- add scenario for adding a new static check
- add design page for static checks gate
- spexso: assert static-checks files exist
- add spec + plan for static-checks gate
- Merge branch 'spexso-feedback' into main
- presentation: drop 'coming soon' on /spexso-feedback (it ships)
- link the give-feedback scenario from the index
- add scenario page for /spexso-feedback
- add /spexso-feedback to commands table
- spexso: assert spexso-feedback command exists
- add spec + plan for /spexso-feedback command + presentation
- raise version number
- Merge branch 'kanban-boards' into main
- flesh out Issue Board Configuration section for 3 boards
- link the kanban boards setup scenario from the index
- add /spexso-boards-init to commands table
- add scenario page for setting up kanban boards
- add design page for kanban boards
- spexso: assert boards files exist and needs::attention is registered
- add spec + plan for kanban boards provisioning
- Merge branch 'cicd-3tier' into main
- link the CI/CD setup scenario from the index
- add /spexso-cicd-init to commands table
- add scenario page for setting up CI/CD
- add design page for 3-tier CI/CD
- spexso: assert cicd scaffold files exist
- add spec + plan for 3-tier CI/CD template
- Merge branch 'marathon-context-isolation' into main
- add spexso-issue-runner to agent registry
- update /spexso-marathon section for per-issue subagent + circuit breaker
- marathon now isolates per-issue context; document circuit breaker
- spexso: assert spexso-issue-runner scaffold exists
- add spec + plan for marathon context isolation
- Merge branch 'main' of flexso.gitlab.host:flexso/spexso
- Edit package.json
- gitignore local presentation artifacts
- standardize on /spexso-<name> hyphen invocation everywhere
- add SAP/CAP conventions to CLAUDE.md snippet
- spexso tinder update
- update to 1.1.5
- add different models for the agents
- update 1.1.3
- document yolo hardening — skip logging, conflict warning, Windows fallback, Jest fix
- add yolo marathon hardening implementation plan
- add documentation rule to CLAUDE.md — scaffold changes must update docs/
- update version
- clarify stage 4 vs stage 5 in lifecycle — review vs ship
- update finish flow docs for auto-merge, targetBranch, needs:: labels
- document config.json and needs:: labels in claude-md-snippet
- add Task 6 (docs updates) to auto-merge plan
- add auto-merge implementation plan
- add auto-merge + manual test handoff design spec
- update version
- fix lib dependency
- update
- update claude permission, typescript + plugin check
- add issue flow to doc
- preflight check
- update
- documentation
- test cicd
- change package
1.0.0 — 2026-04-02
Other
- Initial commit