Repository navigation
fix(boundary): validate at edges and stop re-parsing admitted values - #1507
Closed
ScriptedAlchemy wants to merge 2 commits into
Closed
ScriptedAlchemy wants to merge 2 commits into
ScriptedAlchemy wants to merge 2 commits into
Conversation
Keep hook stdin policy, confirmation, and duration parsing at the shell. Stop treating unregistered retention JSON and transport serializers as application contracts. Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
|
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
codex/tracedecay-total-redesign-plan-reopenedand must not be merged tomaster.3e6167b265639c17b7d1c174cd3b7baa3116adaeinto this branch (01df00f417). No conflicts. The tip already absorbedNotApplicable, dropped the removedreusedchunk list, and kept publication-authority park fail-closed.Motivation
Boundary discipline: validate at CLI, config, and host-stdin boundaries; trust typed data inside; keep business logic out of framework wiring; do not re-export wire or private representations through the public surface.
Changes
boundary-discipline fixes
Stopuses the shared hook stdin admission. Oversized stdin exits 0; a read error exits 1. It no longer continues on an empty event.PATCH /api/settings/userparseswatcher_debounceonce into milliseconds. The planner writesConfigurationValueV1::Unsignedand does not parse the display string again.--yes, matchingHostBundleWriterV1. Help no longer shows an unconfirmed backup that the writer refuses.config.jsonstill validatesRetentionConfigat file parse.sync.retention.v1.Tip absorbed (no local rework)
CodeIndexDemandAdmissionV1::NotApplicableis matched in branch publication.ChangedCodeChunkSetV1.reusedis gone; receipts usereused_count/reused_digest.Findings left in place
These are real boundary smells, but fixing them here would widen the principle or drop a check the domain type does not yet own:
validate_configbecause that function parses schedule grammarAutomationSettingsV1::validatedoes not. Deleting the reload check would admit schedules the scheduler later rejects.SqliteDriverErroris a string envelope on the domain error surface, not a rusqlite re-export. Renaming it is a wider public error change.Test plan
tracedecay-code-index-runtimepath used by agent-hosts, CLI, and MCPcargo test -p tracedecay-agent-hosts --lib hook_stdin_admission_is_one_policycargo test -p tracedecay-cli --bin tracedecay artifact_backup_requires_the_writer_confirmationcargo test -p tracedecay-cli --bin tracedecay host_bundle_artifact_commands_parse_explicit_scope_and_confirmationcargo test -p tracedecay-api -p tracedecay-configuration -p tracedecay-application -p tracedecay-dashboard-api -p tracedecay-mcp --libfor admission, retention, planner, serializer, and budget testscargo nextest run --workspace --no-fail-fastnot runChecklist
.envfiles included--yes(the writer already refused); Claude Stop stdin exit codes match the other hosts[Unreleased]section