Motivation
This RFC outlines the development roadmap for Lumilake in Q2 2026. We are gathering ideas and feedback.
Proposed change
Code health & security
Usability — SDK, CLI, docs, errors
Dependencies
Generalizability
Performance
Alternatives considered
No response
Migration / compatibility
No response
Feedback period
No response
CC list
No response
Before submitting
Motivation
This RFC outlines the development roadmap for Lumilake in Q2 2026. We are gathering ideas and feedback.
Proposed change
Code health & security
CI improvement ci(unit-tests): collect coverage and stop skipping tests/server #8
pytest-covto CI to ensure coverage.tests/server/in Pytest CI.Harden untrusted-input and failure paths
runtime/server.py:303,314,322,648,693,parser/n8n.py:457) so hook failures stop being silently swallowed.runtime_graph.py:1529–1533and909–911with a parser or explicittable_nameparam (injection risk).request_id/batch_idbefore joining into archive paths inruntime_manager/flowmesh.py:113(path traversal)._artifact_name_from_uri()(routes/jobs.py:673–685) usingPath(name).name.routes/jobs.py:140–154(DoS via 100MB or deeply nested payload).parser/n8n.py:120–124when a node has notypeinstead of silently passing the filter.parser/n8n.py:165–268) so a progress-tracking bug can't hang the parser.Tighten runtime code quality
getattrfor known-optional fields inhalo_dp.py; replace with typedOptionalfields._resolve_data_retrieval_params()inruntime_graph.py:848–889vs980–1018.FormatOpinstead of invisible auto-wrap._build_candidate_poolagainst theitem_map[workflow_id]race when items are dequeued between selection and access (priority_queue.py:248).finalize_workflows()pops a missing workflow id (priority_queue.py:161–163).Usability — SDK, CLI, docs, errors
Dependencies
Generalizability
ModelRegistry/ backend-strategy seam inruntime/runtime_graph.py(≈L478–519).data_spec/model_spec/inference_specdicts (≈L1148–1160) with Pydantic discriminated unions per(backend, task_type).Performance
Job manager - Priority queue fairness
_apply_user_fairness()from O(N²) by precomputinguser_to_ids(priority_queue.py:390–441).get_pending_stats()(priority_queue.py:143–156).Query Optimizer
remap()on graph prefixing (runtime_graph.py:167–237).runtime/optimizer/schedule/halo_dp.py).Storage and scheduling I/O
utils/job_storage.py:35–72).LUMILAKE_POLL_INTERVAL_SECONDSsleep loop with an event / condition variable for worker availability (runtime/server.py:673–747).Alternatives considered
No response
Migration / compatibility
No response
Feedback period
No response
CC list
No response
Before submitting