Dallin Romney
96ea0fbf56
improve(qa): align Telegram coverage with startup behavior ( #113527 )
...
* test(telegram): align coverage with startup behavior
* fix(qa): register Slack MPIM coverage
2026-07-29 12:59:42 +08:00
Peter Steinberger
d239a59d82
fix(ui): make Control UI ownership and permissions reliable ( #115364 )
...
* fix(ui): unify connection-owned gateway event dispatch
* fix(qa): keep hosted UI smoke evidence truthful
* fix(ui): make mobile navigation drawer an accessible modal
* refactor(ui): centralize settings search destinations
* fix(ui): own chat media resource lifecycles
* fix(ui): unify sidebar session scope ownership
* refactor(ui): remove obsolete navigation backdrop styles
* refactor(ui): isolate dashboard provider lease capabilities
* fix(ui): centralize gateway operator permissions
* style(ui): format gateway event regressions
* fix(ui): render live dashboard permissions immediately
* fix(ui): enforce approval grant authority
* fix(gateway): fence retired sockets after event gaps
* fix(ui): isolate sidebar gateway fixtures across shared workers
* test(ui): isolate singleton-sensitive browser suites
* fix(ui): retire stale catalog pagination on gateway reconnect
* fix(ui): restore drawer focus after native dialog dismissal
* fix(ui): seed drawer threads and preserve modal focus ownership
* fix(ui): isolate nested native drawer overlay lifecycle
* test(ui): prove isolated dashboard lease authorization
* fix(ui): bound settled managed image resources
* fix(ui): type native modal focus and shared test helper
* fix(ui): correct approval mock types and trim dead export
* fix(ui): keep settings section metadata private
* fix(qa): keep hosted coverage regression within lint limit
* refactor(ui): keep catalog presence in its session data owner
* fix(browser): regenerate bundled copilot runtime
* test(ui): split board lease authorization regressions
* fix(ui): snapshot gateway listener fanout without redundant spread
* fix(ui): bind chat media subscriptions to image lifetime
* fix(ui): extract overlay access lifecycle
* fix(ui): restore guarded media after Lit reconnection
* test(ui): localize board lease fixture title
* fix(ui): reuse system approval fixture labels
* test(ui): narrow managed media lifecycle source
* fix(ui): prevent retired board gateway clients from rolling back leases
* fix(ui): expose pairing to pairing-scoped operators
* fix(ui): preserve legacy device pairing access
* fix(ui): preserve responsive sidebar ownership
* fix(ui): preserve responsive navigation and prove media ownership
* fix(ui): retire revoked catalog and refresh pairing grants
* test(ui): align typed catalog fixtures with main
2026-07-28 16:42:05 -04:00
Dallin Romney
9feb6ad161
refactor(qa): make scenario selection taxonomy-owned ( #114055 )
...
* refactor(qa): remove scenario execution profiles
* fix(qa): preserve smoke CI membership
* test(qa): drop redundant smoke pack order check
* refactor(qa): remove Matrix runner profiles
* refactor(qa): simplify Matrix CI orchestration
* refactor(qa): derive execution sets from taxonomy
* fix(qa): keep Matrix shard helper private
* refactor(qa): derive profile scenarios from taxonomy
* refactor(qa): reconcile taxonomy selection
* refactor(qa): use canonical profile planning
* refactor(qa): select canonical coverage owners
* fix(qa): keep profile selector internal
* refactor(qa): remove representative coverage owners
2026-07-28 22:23:41 +08:00
Peter Steinberger
960b050add
refactor(extensions): remove orphaned shadow trial and retired config aliases ( #114709 )
...
* refactor(memory-core): remove orphaned shadow trials
* refactor(qqbot): migrate direct voice upload formats
Release note: QQBot configs using voiceDirectUploadFormats now migrate through openclaw doctor --fix to audioFormatPolicy.uploadDirectFormats at root and account scope. Existing nested uploadDirectFormats values win conflicts, and runtime reads only the nested policy.
* refactor(feishu): migrate tools base alias
Release note: Feishu configs using tools.base now migrate through openclaw doctor --fix to tools.bitable at root and account scope. Existing bitable values win conflicts, and runtime accepts only the canonical key.
* refactor(extensions): remove dead runtime state
* chore(config): refresh bundled channel metadata
* refactor(codex): keep realtime fallback type private
* test(ci): align QA compatibility scenario count
2026-07-27 17:12:41 -04:00
Peter Steinberger
f8cc39ce62
refactor(reply): converge queued follow-up execution [AI-assisted] ( #114599 )
...
* refactor(reply): converge queued follow-up execution
* fix(reply): preserve follow-up lifecycle invariants
* fix(reply): fence follow-up admission generation
* fix(reply): reconcile follow-up preflight state
* fix(reply): fence persisted follow-up generation
* fix(reply): defer follow-up compaction terminal notices
* style(reply): format follow-up admission
* fix(reply): normalize follow-up session metadata
* fix(reply): fence in-memory follow-up generation
* test(reply): satisfy follow-up lint contracts
* fix(reply): revalidate failed follow-up preflight
* fix(reply): reject deleted follow-up generation
* fix(reply): release restart-aborted operations
* test(reply): avoid unbound operation assertion
* fix(reply): refresh follow-up presentation state
* test(reply): use canonical plan update shape
* fix(reply): harden follow-up progress delivery
* fix(reply): synchronize recovered follow-up operation
* test(reply): mark partial operation fixture
* fix(reply): adopt owned preflight rotations
* docs(reply): clarify restart settlement guard
* test(reply): preserve terminal notice call count
* refactor(reply): remove retired follow-up exports
* test(reply): prove dispatcher-only follow-up routing
* chore(reply): remove stale delivery type import
* fix(reply): finalize follow-up cleanup and failure delivery
* fix(reply): prefer authoritative admission snapshot
* fix(reply): avoid replay on progress failure
* fix(reply): retain suppressed-mode terminal failures
* fix(reply): preserve follow-up session context
* fix(reply): preserve exclusive delivery and deleted state
* fix(reply): prevent post-start follow-up replay
* fix(reply): prioritize safe follow-up failure delivery
* fix(reply): signal follow-up execution after start
* fix(reply): harden follow-up settlement
* refactor(reply): keep session clear internal
* fix(reply): consume pre-run user aborts
* fix(reply): retain progress delivery failure
* fix(ci): register codex prewarm test shard
* test(reply): retain operation mock type
2026-07-27 15:06:11 -04:00
Dallin Romney
132d91e427
refactor(qa): make taxonomy coverage ids unique ( #110280 )
2026-07-22 16:28:44 +09:00
Peter Steinberger
edecdbd05e
refactor(config): config-surface reduction tranche 3 — product consolidations (review request) ( #111527 )
...
* refactor(config): consolidate media model lists
* refactor(config): unify memory configuration
* refactor(config): consolidate TTS ownership
* refactor(config): move typing policy to agents
* refactor(config): retire product-level config surfaces
* refactor(config): share scoped tool policy type
* chore(config): refresh generated baselines
* fix(config): honor agent typing overrides
* fix(config): migrate sibling config consumers
* refactor(infra): keep base64url decoder private
* fix(config): strip invalid legacy TTS values
* chore(config): refresh rebased baseline hash
* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move
* refactor(config): polish final layout names
* refactor(config): freeze retired tuning defaults
* feat(config): add fast mode default symmetry
* refactor(config): key agent entries by id
* docs(config): update final layout reference
* test(config): cover final layout migrations
* chore(config): refresh final layout baselines
* fix(config): align final layout runtime readers
* fix(config): align remaining readers
* fix(config): stabilize final layout migrations
* fix(config): finalize config projection proof
* fix(config): address final layout review
* docs(release): preserve historical config names
* fix(config): complete keyed agent migration
* fix(config): close final migration gaps
* fix(config): finish full-branch review
* fix(config): complete runtime secret detection
* fix(config): close final review findings
* fix(config): finish canonical docs and heartbeat migration
* fix(config): integrate latest main after rebase
* refactor(env): isolate test-only controls
* refactor(env): isolate build and development controls
* refactor(env): collapse process identity indirection
* refactor(env): remove duplicate config and temp aliases
* docs(env): define the operator-facing allowlist
* ci(env): ratchet production variable count
* fix(env): remove stale provider helper import
* fix(env): make ratchet sorting explicit
* test(env): keep test seam in dead-code audit
* test(env): cover ratchet growth and boundary; document surface budgets
* docs(config): document tier-eval consolidations
* docs(config): clarify speech preference ownership
* test(memory): align retired tuning fixtures
* refactor(memory): freeze engine heuristics
* refactor(config): apply tier-eval tranche
* refactor(tts): move persona shaping to providers
* refactor(compaction): move prompt policy to providers
* test(config): align hookified prompt fixtures
* chore(deadcode): classify test-only exports
* chore(github): remove unused spawn helper
* chore(deadcode): classify queue diagnostics
* chore(deadcode): remove unused lane snapshot export
* chore(plugin-sdk): ratchet consolidated surface
* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00
Peter Steinberger
4d683904df
fix(agents): restore ask_user roundtrip in Gateway chats ( #110961 )
...
* fix(agents): restore ask_user channel roundtrip
* test(qa): derive ask_user proof from answers
* test(qa): isolate mock reply directives
* test(qa): wait for complete ask_user reply
* fix(agents): fail closed on stale ask_user prompts
* chore: remove release-owned changelog entry
* fix(agents): satisfy ask_user CI contracts
2026-07-18 22:55:46 +01:00
Peter Steinberger
4fbdb6d011
test(qa): align coverage inventory contracts ( #110799 )
2026-07-18 17:22:50 +01:00
Peter Steinberger
a6a0716486
feat(setup): rename Crestodian to OpenClaw system agent
...
User-facing name is now OpenClaw (the system speaks); internal code name is
system-agent. Gateway methods crestodian.* -> openclaw.chat/openclaw.setup.*,
agent tool -> openclaw, reserved agent ids openclaw + retired crestodian.
openclaw setup routes: onboarding flags -> onboard, -m/--yes -> system agent,
bare configured interactive -> OpenClaw chat, unconfigured -> onboarding.
Hidden crestodian CLI and /crestodian TUI aliases kept; docs moved to
docs/cli/openclaw.md with redirect stub. macOS/Android strings in lockstep.
Refs #107237
2026-07-14 11:03:02 -07:00
Vincent Koc
f33ab243cf
fix(sqlite): reject runtimes vulnerable to WAL corruption ( #106065 )
...
* fix(sqlite): require WAL-reset-safe Node runtime
* docs(sqlite): document safe Node runtime floor
* fix(sqlite): defer runtime library validation until use
* fix(ci): align startup memory with Node 24.15
2026-07-13 13:59:00 +08:00
Peter Steinberger
7bf80dc2c6
chore(tooling): enforce formatting and refresh TypeScript checks ( #104239 )
...
* chore(tooling): enforce current formatter and refresh checks
* chore(tooling): keep release changelog formatter-owned
* chore(tooling): retain compatible Node type surface
* ci: enforce formatting for docs-only changes
* ci: isolate docs formatter check
* chore(tooling): apply updated lint and format rules
* chore(tooling): satisfy updated switch lint
* style(ui): apply Linux formatter layout
* test(doctor): match quiet local audio contribution
* test(doctor): assert quiet output only
* test(doctor): follow restored information contract
2026-07-11 01:09:51 -07:00
Ayaan Zaidi
f351288a0d
chore(repo): remove stale repository artifacts ( #103152 )
...
* docs: remove merged cron design document
* chore(repo): remove stale planning and proof artifacts
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-07-10 05:28:12 +05:30
Vincent Koc
e75223286d
fix(qa): require live channel driver for access-gate scenarios
2026-07-06 21:34:27 +02:00
Peter Steinberger
bf04d049fa
feat(goals): keep active session goals in per-turn context + continuance QA scenarios ( #100468 )
...
* feat(goals): keep active session goals in per-turn context (#100409 )
Active goals now inject one bounded user-role context line on every
non-heartbeat turn, refreshed at queued/interrupt admission via
provenance-tracked generated lines so operator stops take effect
immediately. Adds qa/scenarios/goals continuance scenarios and
goals.* coverage IDs.
* docs: regenerate docs map for goal context section
* fix(qa): use requiredChannelDriver instead of execution.channel pin in goal scenarios
2026-07-06 04:55:10 +01:00
Peter Steinberger
2bed394793
feat(gateway): add system.info RPC and Gateway Host card in Settings ( #100478 )
...
* feat(gateway): add system.info RPC and Gateway Host card in Settings
Settings quick page now shows where the Gateway runs and how the host
is doing: machine name, LAN address and runtime port, OS, Node/PID,
uptime, CPU count and load, RAM, and free disk on the state-dir volume.
Backed by a new additive operator.read RPC (system.info); the card
polls every 10s while visible and hides for clients without the read
scope or against older gateways.
Refs #100465
* docs: regenerate docs map for Gateway host status section
* fix(gateway): harden system info compatibility
* fix(ui): clear stale gateway host info
* docs(changelog): note gateway host status
2026-07-06 04:29:19 +01:00
Josh Avant
0cdce79221
docs: update mobile app release messaging ( #98843 )
2026-07-01 21:11:56 -05:00
Dallin Romney
9666db607e
test(qa): clean up smoke taxonomy profile ( #96320 )
2026-06-24 00:43:00 -07:00
Dallin Romney
1ce8eb3993
docs: rename top maturity tier ( #96044 )
2026-06-23 02:19:45 -07:00
Dallin Romney
4460fa78c3
feat(qa): add "all" taxonomy profile ( #95947 )
...
* qa: add all maturity profile
* test: update qa coverage profile expectations
2026-06-22 20:49:08 -07:00
Dallin Romney
27711b500c
ci: add maturity scorecard renderer ( #94272 ) ( #95901 )
...
* ci: add maturity scorecard renderer
* ci: render qa scorecard evidence
* ci: type maturity docs renderer
* ci: tighten maturity artifact inputs
* ci: move maturity renderer under qa scripts
* ci: share maturity score schema
* ci: centralize maturity taxonomy validation
* ci: move maturity scores under qa
* ci: remove docs maturity score source
* docs: simplify maturity scorecard output
* docs: commit generated maturity scorecard
* docs: group maturity pages
* docs: simplify maturity scorecard dates
* docs: promote maturity nav tab
* docs: clean up maturity pages
* docs: remove maturity outline page
* docs: filter maturity taxonomy doc links
* docs: simplify maturity taxonomy tables
* docs: keep artifact taxonomy links
* docs: simplify lts scorecard display
* docs: clarify maturity score definitions
* docs: derive maturity coverage from evidence
* docs: hide maturity scorecard until evidence
* docs: remove placeholder maturity pages
* docs: keep maturity scores out of pr
* ci: open maturity scorecard docs pr
2026-06-22 18:55:06 -07:00
Dallin Romney
63b13ea837
feat(qa): crabline channel driver ( #91502 )
...
* feat(qa): add crabline channel driver seam
* feat: run crabline channel driver smoke
* chore: keep crabline qa dependency dev-only
* refactor(qa): keep crabline driver details opaque
* chore(qa): pin crabline to merged driver API
* feat(qa): drive channel driver from profiles
* fix(qa): declare crabline runtime peer
* feat(qa): resolve crabline channel from scenarios
* feat(qa): treat unsupported profile channels as coverage gaps
* Revert "feat(qa): treat unsupported profile channels as coverage gaps"
This reverts commit 65a97016558705514a1c1ec74870de9b0a6e7886.
* fix(qa): adapt crabline driver to chat sdk cli
* refactor(qa): pass channel driver metadata directly
* chore(qa): update crabline provider pin
* chore(qa): default channel scenarios to driver
* chore: repair qa dependency lockfile
* chore: allow native qa dependency builds
* fix(qa): satisfy crabline driver lint
* fix(qa): satisfy crabline ci gates
* Use crabline transport for smoke QA profile
* fix(qa): keep crabline driver opt-in
* fix(qa): reuse crabline telegram driver token
* fix(qa): route smoke profile through crabline
* fix(qa): run full smoke profile lane
* fix(qa): remove smoke scenario workflow filter
* fix: stabilize crabline smoke qa profile
* fix: pin crabline qa dependency
* test: keep crabline smoke credential-free
* fix: skip visible reasoning lane for crabline smoke
* fix: unblock crabline qa ci
* Update crabline dependency
* Pin crabline to merged main
* Use Crabline fake provider servers
2026-06-22 15:24:59 -07:00
Dallin Romney
9ab8e466d2
test(qa): make release scorecard categories explicit ( #95406 )
2026-06-20 23:01:23 -07:00
Dallin Romney
e12cf72b17
Standardize QA coverage IDs on dotted names ( #94702 )
...
* fix: standardize qa coverage ids
* test: avoid qa coverage id assertion spread
2026-06-18 17:25:26 -07:00
Dallin Romney
c4ae2be947
fix: taxonomy coverage id cleanup ( #94304 )
...
* fix: split taxonomy coverage id features
* fix: clean taxonomy feature row names
* docs: clarify taxonomy coverage id semantics
* docs: tighten coverage id guidance
* fix: keep taxonomy features product shaped
* fix: narrow sdk artifact coverage bundle
* fix: name taxonomy coverage ids clearly
* fix: polish taxonomy feature descriptions
2026-06-18 15:16:58 -07:00
Dallin Romney
e17d111990
fix: require all taxonomy coverage ids ( #94296 )
2026-06-17 16:38:14 -07:00
Vincent Koc
9bd6ff4c14
fix(qa): register gateway smoke coverage ids
2026-06-18 00:20:34 +02:00
Dallin Romney
450060d7a2
test(qa): expand smoke-ci and release categories and coverage ( #93175 )
...
* test(qa): add smoke ci primary coverage evidence
* test(qa): remove overstated primary coverage claims
* test(qa): make release profile include smoke ci
* test(qa): trim taxonomy formatting churn
* test(qa): avoid hardcoded profile names in coverage test
* test(qa): make release profile cover taxonomy
* test(qa): type profile fixture all category flag
* test(qa): include channel delivery in smoke ci profile
2026-06-15 18:05:52 -07:00
Dallin Romney
e32929e12c
Add slim evidence mode for QA profile evidence ( #93179 )
...
* test(qa): compact profile evidence execution metadata
* docs(qa): document compact profile evidence
* test(qa): support compact evidence mode
* test(qa): rename compact evidence mode to slim
* docs(qa): trim slim evidence wording
* fix(qa): avoid commander runtime import
2026-06-15 14:50:40 -07:00
Peter Steinberger
0314819f91
fix(agents): replace prose terminal classifiers ( #93228 )
...
* fix(agents): replace prose terminal classifiers
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
* fix(agents): preserve terminal failure lifecycles
* fix(agents): order parallel terminal summaries
* fix(agents): preserve structured post-tool silence
* fix(agents): preserve structured replay provenance
---------
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
2026-06-15 02:53:14 -07:00
Dallin Romney
a3e9dfee0e
Simplify QA scorecard mapping shape ( #92558 )
...
* test(qa): simplify scorecard mapping shape
* test(qa): use typed scorecard evidence refs
* test(qa): map scorecard categories by coverage id
* feat: align qa coverage with taxonomy features
* refactor: keep qa coverage ids canonical
* refactor: minimize qa coverage id churn
* test: align qa coverage id assertions
* test: update qa evidence coverage expectations
* refactor qa taxonomy coverage ids
* style qa taxonomy coverage ids
* test qa coverage lint fix
* test qa coverage type fix
2026-06-14 00:16:33 -07:00
Kevin Lin
a54f50a41b
chore: add taxonomy file ( #91512 )
...
* chore: add taxonomy file
* add maturity scores
* move taxonomy doc
2026-06-08 14:55:44 -07:00