P0 ARDR research: one total StarIntel runtime thread budget #164
Labels
No labels
bug
design
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/starintel-auto-research#164
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
StarIntel problem solved
Research the open P0 implementation gap in
lost-rob0t/starintel-server#34: StarIntel currently configures multiple actor/consumer/task/HTTP/timer execution pools independently, so one nominal concurrency knob can multiply OS threads instead of enforcing one bounded process-wide runtime budget.Owning issue:
lost-rob0t/starintel-server#34.Current
starintel-server/masterinspected ate99aadd3f44505bc692708aad5e34ab0c4ab0036.ARDR state
READY_FOR_DESIGNImplementation approval remains operator-only.
Why this is selected
This is an actual open P0 server issue and is dependency-ready as a design/research target. It outranks lower-priority OSINT enhancement research for this cycle.
Verified StarIntel-specific failure model
The owning issue documents that current runtime capacity is split across several independent execution sources:
:pinneddispatcher identifier;The practical defect is not merely “too many threads.” The architecture currently lacks one authority that can answer before startup whether the composed runtime can fit inside the operator's declared thread ceiling.
Research conclusion
StarIntel needs one runtime resource-budget authority owned by the server runtime/component layer, not by individual actors and not by StarLang syntax.
Every runtime component that can create or reserve OS threads must declare its thread demand before activation. Startup computes a closed budget plan, rejects impossible configurations before side effects, then gives components only the allocation they were granted.
Required model
Define a runtime budget contract equivalent to:
Execution classes should distinguish at least:
Core invariants
max-process-threadsplus explicitly documented non-runtime VM/foreign-library overhead.ingest-workers = Ncannot silently become N workers in several unrelated pools.StarLang classification
No new StarLang language syntax is justified.
Component registration strategy
Every thread-producing subsystem should register a closed resource profile before startup realization.
Example categories:
The planner allocates from the operator ceiling using deterministic policy. Components receive explicit granted counts; they do not re-read global concurrency knobs independently.
Allocation policy research decision
Keep v1 deterministic and boring:
Do not add adaptive autoscaling to solve the initial correctness bug.
Interaction with existing P0 issues
Adversarial findings
Rejected:
:pinnedfor custom pools — semantic collision and misleading configuration.RED-first research output
The first implementation slice must start with a deterministic configuration fixture that describes multiple thread-producing components whose requested allocations exceed
max-process-threadsand prove untouched current server startup does not reject the configuration through a single budget validator.Additional RED target: a fixture where one
ingest-workersvalue is independently consumed by multiple subsystems must demonstrate the computed total exceeds the intended ceiling.Decision
Research is sufficient to proceed to design. No unresolved architecture question requires human research validation.
Implementation approval:
PENDING / AWAITING_OPERATOR_APPROVAL.