Skip to content

[upstream-sync] Expose progress watching API for App/execution engine (upstream PR #1767) #99

@github-actions

Description

@github-actions

Upstream Change Summary

Type: new-feature
Difficulty: Medium
Recommendation: Adopt

Upstream added a progress watching API to the App engine, allowing callers to subscribe to progress updates during indexing runs. This introduces UpdateStats tracking per-component in the engine's stats.rs and exposes it via app.rs. This is useful for observability in long-running flows.

Upstream References

Relevant Upstream Files / Areas

  • rust/core/src/engine/app.rs — progress watch subscription
  • rust/core/src/engine/stats.rsUpdateStats struct with per-component tracking

Recoco Considerations

  • Maps to crates/recoco-core engine module (src/engine/ equivalent)
  • The Python binding layer (rust/py/src/app.rs, rust/py/src/lib.rs) should be excluded entirely
  • UpdateStats is a pure Rust struct — expose as part of recoco's public API
  • Consider whether the progress watching API should be part of recoco's public prelude.rs
  • The by_processorby_component rename (upstream PR #1768, Python-only) also affects UpdateStats in the Python layer — the Rust struct name change is in the stats module and should be adopted for clarity

Integration Notes

The progress API is useful for the library's public surface. Recoco users running persisted flows benefit from observability hooks. This is a straightforward addition but requires deciding on the public API shape for Rust callers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    claudeCreated or actioned by Claude AIupstream-syncIssues for syncing updates with our upstream (cocoindex-io/cocoindex)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions