feat: establish the canonical authenticated service boundary (DG1-P1) - #2
Merged
Merged
Conversation
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.
Behavior
Deliver DG1-P1 (DG1-C01 and DG1-C02): a canonical, exclusive foreground service boundary and a small authenticated local client. Normal paths come from the OS account, so changing HOME, XDG, a project setting or a command argument cannot create a second normal authority. Explicit bootstrap remains separate from ordinary startup; missing, corrupt and unsupported journals fail closed.
devguardd servevalidates and owns the existing journal, authenticates native UDS peer UID/PID and separate consumer/admin credentials, and exposes bounded status communication. The protocol has strict version/field decoding, 64 KiB frames, 32 session workers and absolute 250 ms frame deadlines. Private credential handoff is tested across actual subprocesses, including closure before a later exec. Native registration, principals, workload leases and execution remain closed until the required P2/P3 evidence exists.The two implementation commits preserve the DG-0 contract/journal format and original 44-test baseline. New daemon/client crates extend the explicit workspace dependency checks; contract/core remain independent of CodeSpace and Codex. English operations/contracts/planning and reviewed Korean counterparts describe the implemented boundary and subsequent work separately.
Validation
python3 scripts/qualify.py dg1-authority --offline: 19 functional cases.python3 scripts/qualify.py dg1-auth --offline: 20 functional cases. These are scoped subsets of the regression tests, not additional OS qualification claims.Compatibility, limitations and rollback
Configuration schema remains 1, but
system_tasksnow requires at least 48 (32 bounded sessions plus 16 service/control tasks). The former C01 value 16 is explicitly rejected. An operator must review capacity and reservations before updating it; there is no automatic migration, capacity enlargement or journal reinitialization. This is an accounting estimate, not a kernel task limit.Authentication is not isolation from malicious same-UID programs. Frame deadlines are functional transport bounds, not the later end-to-end admission or foreground SLO qualification. Linux CI covers portable contracts and local transport fixtures, not DG-LINUX enforcement. No LaunchAgent, generic execution, self-use, resource-control qualification or CodeSpace runtime integration is delivered here.
Rollback: stop the foreground process and select an artifact compatible with the preserved configuration and schema-1 journal. Preserve credentials, journal and evidence. C01/C02 cannot have launched user workloads; later live-lease rollback must use actual reconciliation rather than this early empty-state assumption.
Local reports, diagnostic evidence and foreground receipts are preserved outside the disposable worktree. After normal exact-head merge and separate main CI success, remove only this task's clean worktree, merged local branch and regenerable build output; retain the remote branch, operational state, credentials and evidence.