Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
e287f49
fix(code-index): fence stale progress boundaries
ScriptedAlchemy Nov 8, 2026
8270bfc
fix(code-index): fence progress identity across staging retries
ScriptedAlchemy Nov 8, 2026
6dc0f58
fix(code-index): ignore progress reports without new work
ScriptedAlchemy Nov 8, 2026
28c1d73
style(code-index): format progress boundary regressions
ScriptedAlchemy Nov 8, 2026
29c1258
fix(code-index): satisfy Clippy for progress guards
ScriptedAlchemy Nov 8, 2026
9f3bfe0
fix(dashboard): keep unreported code-index builds observable
ScriptedAlchemy Nov 8, 2026
0fc10fe
fix(mcp): preserve indexing progress authority in search status
ScriptedAlchemy Nov 8, 2026
091bf9d
feat(code-index): record real pre-seal capture and parser evidence
ScriptedAlchemy Nov 8, 2026
b2c4997
feat(graph): report committed stage pages and verified segments
ScriptedAlchemy Nov 8, 2026
bffaf61
fix(graph): do not report a lost compact-seal race as a new write
ScriptedAlchemy Nov 8, 2026
de17fca
feat(code-index): surface pre-seal attempt work in daemon status
ScriptedAlchemy Nov 8, 2026
1dc9527
fix(cli): detect silence in observed first-generation work
ScriptedAlchemy Nov 8, 2026
3258ac2
fix(cli): exclude uninstrumented phases from stall detection
ScriptedAlchemy Nov 8, 2026
84e10bc
fix(code-index): observe retained restart capture and parse work
ScriptedAlchemy Nov 8, 2026
9ac710a
fix(cli): retain real pre-seal work through restoring states
ScriptedAlchemy Nov 8, 2026
70de8b3
fix(cli): distinguish observed work from status publications
ScriptedAlchemy Nov 8, 2026
b599014
feat(graph): report real direct-seal row encoding windows
ScriptedAlchemy Nov 8, 2026
14c1637
feat(graph): publish typed native stage work boundaries
ScriptedAlchemy Nov 8, 2026
37577a8
feat(graph): propagate typed compact writer milestones
ScriptedAlchemy Nov 8, 2026
2e373a0
feat(code-index): propagate native graph writer progress
ScriptedAlchemy Nov 8, 2026
949b80d
fix(cli): avoid false stalls during compact graph finalization
ScriptedAlchemy Nov 8, 2026
bb3a2f8
fix(graph): retain relation bound during native encoding
ScriptedAlchemy Nov 8, 2026
9d1cb37
fix(graph): retain native observer through commit grant
ScriptedAlchemy Nov 8, 2026
c9c70ee
fix(graph): retain writer evidence across serving activation
ScriptedAlchemy Nov 8, 2026
75bab3f
fix(cli): detect stalled native graph before first write
ScriptedAlchemy Nov 8, 2026
e3c262e
test(daemon): prove cold pre-seal recovery after hard kill
ScriptedAlchemy Nov 8, 2026
080260d
test(graph): prove native page recovery across interrupted writer
ScriptedAlchemy Nov 8, 2026
680ae00
fix(code-index): repair native progress compilation paths
ScriptedAlchemy Nov 8, 2026
e48f432
fix(graph): repair native observer Rust test and Clippy gates
ScriptedAlchemy Nov 8, 2026
8440c86
feat(code-index): observe real cold reference resolution
ScriptedAlchemy Nov 8, 2026
f0ae95c
fix(code-index): report staged resolution index page work
ScriptedAlchemy Nov 8, 2026
36b58e3
style(code-index): format progress publication changes
ScriptedAlchemy Nov 8, 2026
0651f1d
fix(code-index): accept borrowed resolution index segments
ScriptedAlchemy Nov 8, 2026
0bd6df1
fix(dashboard): surface live code-index attempt progress
ScriptedAlchemy Nov 8, 2026
4ca0527
test(automation): bind scheduler fixtures to backend identities
ScriptedAlchemy Nov 8, 2026
8798ed6
build(extension): refresh the embedded server from the SDK
ScriptedAlchemy Nov 8, 2026
51eeb22
test(extension): isolate staged CLI command discovery
ScriptedAlchemy Nov 8, 2026
873ae19
fix(dashboard): retain committed native graph progress
ScriptedAlchemy Nov 9, 2026
90ce363
test(mcp): check unreported progress on rebuilding searches
ScriptedAlchemy Nov 9, 2026
2a6530f
test(cli): check the current first-generation stall diagnostic
ScriptedAlchemy Nov 9, 2026
394be3d
fix(graph-db): report encoded windows from streamed graph rows
ScriptedAlchemy Nov 9, 2026
7ed98f0
fix(graph-db): observe staged compact copy windows
ScriptedAlchemy Nov 9, 2026
416adbd
style(graph-db): format compact window assertions
ScriptedAlchemy Nov 9, 2026
6dd6477
fix(cli): track preseal work behind retained text status
ScriptedAlchemy Nov 9, 2026
2bdbdff
fix(code-index): retire preseal at durable publication
ScriptedAlchemy Nov 9, 2026
6b4ff93
style(code-index): format durable publication progress checks
ScriptedAlchemy Nov 9, 2026
b297d8d
fix(cli): fence stale text refusals behind active index work
ScriptedAlchemy Nov 9, 2026
2f493eb
fix(code-index): reject stage callbacks after verified graph seal
ScriptedAlchemy Nov 9, 2026
0dda36d
fix(cli): remove the unused index phase import and format its checks
ScriptedAlchemy Nov 9, 2026
d424073
fix(dashboard): show parked index state and share activity polling
ScriptedAlchemy Nov 9, 2026
abe2b55
fix(dashboard): poll active successors behind stale refusals
ScriptedAlchemy Nov 9, 2026
fa9727b
fix(dashboard): retire stale code-index text cursors
ScriptedAlchemy Nov 9, 2026
f6eec2f
Merge master into fix/4508-progress-boundaries-ci-clean
ScriptedAlchemy Nov 9, 2026
be1d99c
fix(dashboard): isolate retained code-index progress by scope and mount
ScriptedAlchemy Nov 9, 2026
1a5aac1
fix(dashboard): preserve freshness polling function boundaries
ScriptedAlchemy Nov 9, 2026
e7bbd01
fix(dashboard): distinguish progress for linked worktrees
ScriptedAlchemy Nov 9, 2026
de02dc7
fix(code-index): isolate quiet polling to active writer clocks
ScriptedAlchemy Nov 9, 2026
0c6c60e
fix(dashboard): count independent text build boundaries
ScriptedAlchemy Nov 9, 2026
67d0eb3
fix(code-index): retire text cursors when no generation is sealed
ScriptedAlchemy Nov 9, 2026
4697f4b
fix(dashboard): discard observatory cursors after disconnect
ScriptedAlchemy Nov 9, 2026
f2ba35b
fix(dashboard): show quiet preseal and native graph work
ScriptedAlchemy Nov 9, 2026
5b9d3a8
test(dashboard): await decoded progress update after refetch
ScriptedAlchemy Nov 9, 2026
32b3653
fix(code-index): distinguish admitted preseal from measured work
ScriptedAlchemy Nov 9, 2026
4b259ee
fix(code-index): distinguish admitted native writer from observed work
ScriptedAlchemy Nov 9, 2026
51b9138
fix(code-index): retain observed preseal work through handoff
ScriptedAlchemy Nov 9, 2026
36174dc
test(dashboard): restore async freshness test callback
ScriptedAlchemy Nov 9, 2026
e514005
fix(code-index): retire preseal progress at reconcile exit
ScriptedAlchemy Nov 9, 2026
15743f7
fix(code-index): satisfy Bazel rustfmt for attempt lifecycle test
ScriptedAlchemy Nov 9, 2026
fc11411
test(dashboard): await HTTP render with Vitest fake timers
ScriptedAlchemy Nov 9, 2026
a151169
fix(code-index): account for concurrent preseal and text work
ScriptedAlchemy Nov 9, 2026
8635be2
fix(cli): count successor work alongside active graph writes
ScriptedAlchemy Nov 9, 2026
2ad5000
fix(code-index): observe preseal work before guard retirement
ScriptedAlchemy Nov 10, 2026
76f083f
style(code-index): format retained capture assertion
ScriptedAlchemy Nov 10, 2026
29ac2e5
fix(cli): preserve successor progress through old text blocks
ScriptedAlchemy Nov 10, 2026
4af2966
test(code-index): cover cancelled and unwinding preseal owners
ScriptedAlchemy Nov 10, 2026
b19884d
fix(cli): track successor capture during final native graph writes
ScriptedAlchemy Nov 10, 2026
10dc2fc
fix(cli): preserve concurrent lexical commits during native work
ScriptedAlchemy Nov 10, 2026
6edb4af
fix(cli): preserve parked cause and remedy during readiness wait
ScriptedAlchemy Nov 10, 2026
78d3305
fix(cli): retain measured text receipts during final graph write
ScriptedAlchemy Nov 10, 2026
e880e8e
fix(cli): keep final graph writes outside text silence timeout
ScriptedAlchemy Nov 10, 2026
7218ed2
fix(cli): align index progress with Bazel rustfmt
ScriptedAlchemy Nov 10, 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
38 changes: 37 additions & 1 deletion crates/tracedecay-application/src/code_index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ use tracedecay_contracts::code_index_freshness::CodeIndexConvergenceParkedV1;
use tracedecay_domain::CodeGenerationId;

use tracedecay_code_index::{
chunks::CodeIndexImportEvidenceV1, production::CodeIndexExecutionControlV1,
chunks::CodeIndexImportEvidenceV1,
production::{CodeIndexExecutionControlV1, CodeIndexPresealWorkV1},
};
use tracedecay_runtime_core::resident_memory::{
ResidentMemoryPressureStateV1, ResidentMemoryPressureV1,
Expand Down Expand Up @@ -99,6 +100,8 @@ pub struct DaemonCodeIndexControlV1 {
pressure: Option<Arc<ResidentMemoryPressureV1>>,
tripped: Arc<AtomicBool>,
ignores_source_epoch: bool,
preseal_observer: Option<Arc<dyn Fn(CodeIndexPresealWorkV1) + Send + Sync>>,
preseal_finisher: Option<Arc<dyn Fn() + Send + Sync>>,
}

impl Default for DaemonCodeIndexControlV1 {
Expand All @@ -120,6 +123,8 @@ impl DaemonCodeIndexControlV1 {
pressure: None,
tripped: Arc::new(AtomicBool::new(false)),
ignores_source_epoch: false,
preseal_observer: None,
preseal_finisher: None,
}
}

Expand Down Expand Up @@ -154,6 +159,25 @@ impl DaemonCodeIndexControlV1 {
self
}

/// The producer reports only to the separately scoped capture/parse
/// attempt, never to the sealed-generation text-progress authority.
#[must_use]
pub fn with_preseal_observer(
mut self,
observer: Arc<dyn Fn(CodeIndexPresealWorkV1) + Send + Sync>,
) -> Self {
self.preseal_observer = Some(observer);
self
}

/// End the matching pre-seal attempt when the durable publisher takes over.
/// Ending activity must not advance its last observed work time.
#[must_use]
pub fn with_preseal_finisher(mut self, finisher: Arc<dyn Fn() + Send + Sync>) -> Self {
self.preseal_finisher = Some(finisher);
self
}

pub fn advance(epoch: &AtomicU64) {
epoch.fetch_add(1, Ordering::AcqRel);
}
Expand Down Expand Up @@ -196,6 +220,18 @@ impl CodeIndexExecutionControlV1 for DaemonCodeIndexControlV1 {
fn is_deadline_exceeded(&self) -> bool {
false
}

fn observed_preseal_work(&self, work: CodeIndexPresealWorkV1) {
if let Some(observer) = &self.preseal_observer {
observer(work);
}
}

fn finish_preseal_observation(&self) {
if let Some(finisher) = &self.preseal_finisher {
finisher();
}
}
}

#[cfg(test)]
Expand Down
Loading
Loading