Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
4fd4b04
docs(rfc): define multi-artifact Dream expansion
Zxf-xufeng Sep 22, 2026
7cfdfc8
feat(dream): review Profile revisions through existing flow
Zxf-xufeng Sep 22, 2026
cf342ba
feat(dream): review Memory entry revisions atomically
Zxf-xufeng Sep 22, 2026
c54964f
feat(dream): review Topic Memory with atomic projection
Zxf-xufeng Sep 22, 2026
20284ab
feat(dream): review Handoff revisions without activation
Zxf-xufeng Sep 22, 2026
7f3ceaa
feat(dream): expose enabled operation effects in capabilities
Zxf-xufeng Sep 22, 2026
bc2799b
feat(dream): stage Skill revision behind trusted evaluation
Zxf-xufeng Sep 22, 2026
76bbb86
fix(dream): keep Skill revision disabled until evaluation is ready
Zxf-xufeng Sep 22, 2026
c1c63e6
fix(dream): enforce review evidence and fair processing
Zxf-xufeng Sep 22, 2026
69fa13d
fix(dream): preserve upgrade and target correction boundaries
Zxf-xufeng Sep 22, 2026
c6948e2
feat(dream): complete reviewed artifact and tag operations
Zxf-xufeng Sep 22, 2026
13a7584
fix(dream): preserve legacy capabilities responses
Zxf-xufeng Sep 22, 2026
09969fc
fix(ci): add license headers to dream review files
Zxf-xufeng Sep 22, 2026
4a92277
fix(profile): lock processing intent before review policy
Zxf-xufeng Sep 22, 2026
a7eee59
fix(dream): preserve catalog evidence and topic access
Zxf-xufeng Sep 23, 2026
c42c7f1
fix(dream): include independent evidence in tag fingerprints
Zxf-xufeng Sep 23, 2026
b94e6b2
fix(ci): satisfy dream quality checks
Zxf-xufeng Sep 23, 2026
d988006
fix(dream): validate dependent evidence and legacy responses
Zxf-xufeng Sep 23, 2026
3128917
fix(runtime): serialize SQLite startup initialization
Zxf-xufeng Sep 23, 2026
4ad2c9b
fix(runtime): remove redundant SQLite dialect guard
Zxf-xufeng Sep 23, 2026
1ff4948
fix(runtime): shield supervisor cleanup from cancellation
Zxf-xufeng Sep 23, 2026
fc23f31
fix(runtime): drain active supervisor SQL on close
Zxf-xufeng Sep 23, 2026
f5b7400
fix(server): preserve canonical memory error details
Zxf-xufeng Sep 23, 2026
0fc2e03
Merge origin/master into dream expansion branch
Zxf-xufeng Sep 23, 2026
af192bd
fix(runtime): migrate Dream bindings and replay approvals
Zxf-xufeng Sep 23, 2026
db2e95c
docs: keep Dream RFC out of implementation branch
Zxf-xufeng Sep 23, 2026
1fa154e
fix(review): recover overlapping approval replays
Zxf-xufeng Sep 23, 2026
5b65c2f
test(dream): decouple request example from RFC checkout
Zxf-xufeng Sep 23, 2026
b83e430
feat: unify dream candidate review
Zxf-xufeng Sep 24, 2026
a59c511
merge: reconcile master code queries with dream candidates
Zxf-xufeng Sep 24, 2026
17f9cbf
fix(dream): recover concurrent tag approval retries
Zxf-xufeng Sep 24, 2026
8ec6e14
fix(seekdb): avoid unnecessary candidate migration locks
Zxf-xufeng Sep 24, 2026
0e2f032
test: fix candidate scope and migration fixtures
Zxf-xufeng Sep 24, 2026
6541705
fix(dream): isolate Profile policy settings from processing state
Zxf-xufeng Sep 28, 2026
1669950
refactor(dream): delegate schema upgrades to unified migrations
Zxf-xufeng Oct 8, 2026
5c34e5c
fix(dream): enforce explicit migration preconditions
Zxf-xufeng Oct 8, 2026
5dafc4e
fix(dream): preserve declared migration capabilities
Zxf-xufeng Oct 8, 2026
7a2f355
merge: integrate master into Dream expansion
Zxf-xufeng Oct 8, 2026
ad6db0d
fix(dream): repair readiness and guidance CI regressions
Zxf-xufeng Oct 8, 2026
3f9741d
fix(dream): resolve master conflicts and preserve topic scheduling
Zxf-xufeng Oct 10, 2026
ff8fd24
fix(ci): align desktop contract and migration test boundaries
Zxf-xufeng Oct 10, 2026
a9a193d
merge: resolve master conflict in OceanBase profile tests
Zxf-xufeng Oct 10, 2026
0e601c2
fix(dream): accept target context and preserve Skill citations
Zxf-xufeng Oct 10, 2026
0741157
fix(dream): exclude Memory tag bases from supporting evidence
Zxf-xufeng Oct 12, 2026
404106a
merge: adapt Dream expansion to master atomic memory
Zxf-xufeng Oct 12, 2026
5c0ed95
test(dream): align skill evaluation with unified candidate tools
Zxf-xufeng Oct 12, 2026
38e0431
merge: sync master v1.3.0 release contracts
Zxf-xufeng Oct 12, 2026
cd2b32a
test(migrations): preserve historical candidate table names
Zxf-xufeng Oct 12, 2026
3aac39a
fix(ci): qualify v1.3 diagnostics and size OceanBase acceptance
Zxf-xufeng Oct 12, 2026
8e858a2
ci(seekdb): capture migration lock lifecycle and live transactions
Zxf-xufeng Oct 12, 2026
0b4dd71
fix(dream): preserve atomic memory tag search and admission
Zxf-xufeng Oct 12, 2026
e19f64e
fix(review): replay concurrent memory approvals before planning
Zxf-xufeng Oct 13, 2026
afadbb4
merge: integrate master into dream expansion
Zxf-xufeng Oct 13, 2026
ac8f994
chore(evaluation): refresh skill pins after master merge
Zxf-xufeng Oct 13, 2026
f0377b4
fix(dream): persist topic and handoff generation usage
Zxf-xufeng Oct 13, 2026
ae06151
fix(dream): complete usage accounting and merge master
Zxf-xufeng Oct 13, 2026
554436b
merge: integrate bootstrap context and artifact handles from master
Zxf-xufeng Oct 14, 2026
b6e6b65
fix(cli): render candidate history and integrate master
Zxf-xufeng Oct 15, 2026
80b76a6
chore(evaluation): refresh merged ZCode skill pin
Zxf-xufeng Oct 15, 2026
18b940d
fix(integrations): merge master and align DSH candidate tools
Zxf-xufeng Oct 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 31 additions & 6 deletions .github/workflows/e2e-harness.yml
Original file line number Diff line number Diff line change
Expand Up @@ -325,12 +325,37 @@ jobs:
compose=(docker compose -f e2e/bub/compose.yaml -f e2e/bub/compose.oceanbase.yaml)
"${compose[@]}" up --detach --wait --wait-timeout 660 oceanbase
container_id=$("${compose[@]}" ps -q oceanbase)
# SLIM restores a demo datafile capped at 1G and ignores resource environment overrides.
# Repeated isolated schemas and FULLTEXT indexes need bounded growth through the whole job.
docker exec "$container_id" obclient -h127.0.0.1 -P2881 -uroot -e \
"SHOW PARAMETERS WHERE name IN ('datafile_size', 'datafile_next', 'datafile_maxsize');
ALTER SYSTEM SET datafile_maxsize='8G';
SHOW PARAMETERS WHERE name IN ('datafile_size', 'datafile_next', 'datafile_maxsize');"
# The slim image's default 1 GB maximum is too small for the
# indexes created across isolated acceptance databases.
docker exec "$container_id" \
obclient -h127.0.0.1 -P2881 -uroot@sys \
-e "ALTER SYSTEM SET datafile_maxsize='8G'; ALTER SYSTEM SET datafile_next='512M'; ALTER SYSTEM SET datafile_size='4G';"
datafile_ready=false
for config_attempt in $(seq 1 30); do
docker exec "$container_id" \
obclient -h127.0.0.1 -P2881 -uroot@sys --batch --skip-column-names \
-e "SHOW PARAMETERS WHERE name IN ('datafile_size', 'datafile_maxsize', 'datafile_next');" \
> "$RUNNER_TEMP/acceptance-datafile.tsv"
if awk '
$5 == "datafile_size" && $7 == "4G" { size = 1 }
$5 == "datafile_maxsize" && $7 == "8G" { maximum = 1 }
$5 == "datafile_next" && $7 == "512M" { increment = 1 }
END { exit !(size && maximum && increment) }
' "$RUNNER_TEMP/acceptance-datafile.tsv"; then
datafile_ready=true
break
fi
sleep 2
done
cat "$RUNNER_TEMP/acceptance-datafile.tsv"
if [ "$datafile_ready" != true ]; then
echo 'OceanBase datafile configuration did not become effective within one minute.' >&2
exit 1
fi
docker exec "$container_id" \
obclient -h127.0.0.1 -P2881 -uroot@test -ppowercontext-e2e \
-Dpowercontext \
-e "SET GLOBAL recyclebin=OFF; SELECT VERSION(); SHOW VARIABLES LIKE 'ob_compatibility_mode'; SHOW VARIABLES LIKE 'recyclebin';"
oceanbase_ip=$(docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$container_id")
test -n "$oceanbase_ip"
export POWERCONTEXT_TEST_OCEANBASE_URL="mysql+aoceanbase://root%40test:powercontext-e2e@${oceanbase_ip}:2881/powercontext?charset=utf8mb4"
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/seekdb-lock-probe.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: SeekDB migration lock diagnostics

on:
pull_request:
paths:
- scripts/probe_seekdb_migration_lock.py
- .github/workflows/seekdb-lock-probe.yml
workflow_dispatch:

permissions:
contents: read

concurrency:
group: seekdb-lock-probe-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
reproduce:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- uses: ./.github/actions/setup-python-env
with:
python-version: '3.11'
- name: Reproduce migration lifecycle with complete native evidence
run: uv run --locked --extra seekdb python scripts/probe_seekdb_migration_lock.py --attempts 12
- name: Upload native logs, lifecycle and live transaction snapshots
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: seekdb-lock-probe-${{ github.sha }}
path: .powercontext/seekdb-lock-probe
include-hidden-files: true
if-no-files-found: error
retention-days: 7
2 changes: 1 addition & 1 deletion desktop/src-tauri/src/transport/operations.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"contractSha256": "c4571e4bd59833451e3091ee604e836d185643b0b0d9fa08dceb8eea43060cbf",
"contractSha256": "ab39e1cc1a407544927c789fcc02b5f58eccb301b8f874349fe59ac2a8c05107",
"operations": {
"get_liveness": {
"method": "GET",
Expand Down
35 changes: 35 additions & 0 deletions desktop/src-tauri/src/transport/wire.rs
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,14 @@ pub enum AccessRole {
ServerAdmin,
}

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize, ts_rs::TS)]
#[serde(deny_unknown_fields)]
pub struct ArtifactDreamingOperationCapability {
pub r#operation: DreamOperation,
pub r#output_kind: String,
pub r#effect: String,
}

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize, ts_rs::TS)]
#[serde(deny_unknown_fields)]
pub struct ArtifactFamilyAccessCapability {
Expand Down Expand Up @@ -225,6 +233,9 @@ pub struct Capabilities {
#[serde(skip_serializing_if = "Option::is_none")]
#[ts(optional = nullable)]
pub r#artifact_dreaming: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[ts(optional = nullable)]
pub r#artifact_dreaming_operations: Option<Vec<ArtifactDreamingOperationCapability>>,
pub r#source_types: Vec<String>,
pub r#artifact_families: Vec<String>,
pub r#memory_extraction: bool,
Expand All @@ -245,6 +256,28 @@ pub struct Capabilities {
pub r#context_versions: Vec<PreparedContextSchema>,
}

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize, ts_rs::TS)]
pub enum DreamOperation {
#[serde(rename = "refine_experience")]
RefineExperience,
#[serde(rename = "derive_skill")]
DeriveSkill,
#[serde(rename = "revise_skill")]
ReviseSkill,
#[serde(rename = "revise_profile")]
ReviseProfile,
#[serde(rename = "revise_memory")]
ReviseMemory,
#[serde(rename = "revise_topic_memory")]
ReviseTopicMemory,
#[serde(rename = "refresh_handoff")]
RefreshHandoff,
#[serde(rename = "revise_prompt")]
RevisePrompt,
#[serde(rename = "revise_tags")]
ReviseTags,
}

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize, ts_rs::TS)]
#[serde(deny_unknown_fields)]
pub struct ExtractionBackground {
Expand Down Expand Up @@ -460,6 +493,7 @@ pub fn declarations(config: &ts_rs::Config) -> Vec<String> {
<AccessProviderCapabilities as ts_rs::TS>::decl(config),
<AccessResourceType as ts_rs::TS>::decl(config),
<AccessRole as ts_rs::TS>::decl(config),
<ArtifactDreamingOperationCapability as ts_rs::TS>::decl(config),
<ArtifactFamilyAccessCapability as ts_rs::TS>::decl(config),
<ArtifactReadFamily as ts_rs::TS>::decl(config),
<ArtifactReference as ts_rs::TS>::decl(config),
Expand All @@ -469,6 +503,7 @@ pub fn declarations(config: &ts_rs::Config) -> Vec<String> {
<AtomicMemorySearchMode as ts_rs::TS>::decl(config),
<AtomicMemoryState as ts_rs::TS>::decl(config),
<Capabilities as ts_rs::TS>::decl(config),
<DreamOperation as ts_rs::TS>::decl(config),
<ExtractionBackground as ts_rs::TS>::decl(config),
<ExtractionFailure as ts_rs::TS>::decl(config),
<ExtractionObservation as ts_rs::TS>::decl(config),
Expand Down
Loading
Loading