docs(spec): apply merged change-spec blocks that never reached the canonical pages - #29
Draft
antstanley wants to merge 1 commit into
Draft
docs(spec): apply merged change-spec blocks that never reached the canonical pages#29antstanley wants to merge 1 commit into
antstanley wants to merge 1 commit into
Conversation
…nonical pages Four change specs were flipped to Merged without their Proposed changes blocks being applied to the canonical pages they targeted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
antstanley
force-pushed
the
spec/apply-unmerged-change-spec-blocks
branch
from
August 5, 2026 07:41
ee0021d to
b7c640c
Compare
antstanley
marked this pull request as draft
August 5, 2026 08:25
This was referenced Aug 5, 2026
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.
Note
Stacked PR 1 of 16 — part of stack #35, which targets
main.Base:
main· Followed by: #23This PR's diff shows only its own change. Merge the stack bottom-up; do not merge this before its base.
Why it sits at position 1: Foundation. Corrects the canonical pages to describe shipped code; every spec above is written against the post-#29 text.
Scope of this PR
This PR currently carries the change spec. It will also carry the implementation plan and the build work for that spec — plan and code land as later commits on this same branch, so the spec, its plan, and its implementation review and merge as one unit.
Review order within the PR: spec first, then plan, then implementation.
Applies the
Proposed changesblocks from four change specs that were flipped toMergedand moved tochanges/merged/without their blocks ever reaching the canonical pages.The gap. Change specs drafted on 2026-08-05 kept tripping over the same thing: the code shipped, the change spec is marked
Merged, its plan is markedDone— but step 1 of its own merge plan ("apply eachProposed changesblock to its canonical page") never happened. The canonical pages have been describing a state the code left behind. That is exactly the failure mode.specs/README.mdwarns about, since each page is supposed to describe what exists in the current branch.2026-07-01-complete_config_loading.md06-configuration.mdLoading order +Validation at load+[internal_api];04-http-api.mdBootstrap step 2, Routes → Internal, Service roles, Middleware stack;01-ffi-core.mdResponsibilities2026-07-01-implement_lambda_runtime.md06-configuration.md[server] base_path;04-http-api.mdBootstrap step 62026-07-01-enforce_user_lifecycle_transitions.md01-domain-model.mdUser status, Session, Decisions;03-service-flows.mdAdmin operations;04-http-api.mdRoutes → Internal, Error mapping2026-07-01-wire_audit_event_emission.md01-domain-model.mdSession, Open questions;03-service-flows.mdexchange/refresh/revocation/admin client-context + audit-event paragraphs, Open questions;04-http-api.mdMiddleware stack;06-configuration.md[audit]+ Defaults summary;07-telemetry-and-audit.mdAuditThe fourth was found while drafting the secret-leakage spec (#31) and is included here rather than in a separate PR — same defect class, same files, and splitting it would guarantee conflicts. None of the four had any of its blocks applied; each was fully unapplied, not partially.
Every claim was verified against the code before being written, not copied from the proposal:
AppConfig::validate—crates/core/src/config.rs:45crates/server/src/bootstrap.rs:108-116internal_api.enabledmount gate —crates/server/src/bootstrap.rs:339base_pathstrip layer —crates/server/src/bootstrap.rs:362,ServerConfig::base_pathatconfig.rs:149Error::NotFound→ 404not_found—crates/core/src/error.rs:31,crates/server/src/error.rs:120Deleted—crates/core/src/service/user_admin.rs:48-165crates/core/src/service/exchange.rs:308-310emit_thresholdpre-dispatch filter and itsinfodefault —crates/core/src/service/mod.rs:102-110,config.rs:210,219stdout_auditlocked handles →AuditError—crates/adapters/src/stdout_audit/mod.rs:49,51,63sqs_auditFIFOmessage_group_id/ dedup id —crates/adapters/src/sqs_audit/mod.rs:60-63operationdetail —crates/core/src/service/user_admin.rs:26,120,122,165,300-312One correction to the original proposals.
complete_config_loadinglisted only the two token TTLs underValidation at load; the shippedvalidate()also validatesserver.request_timeout. The page documents what shipped.One thing deliberately not claimed.
bootstrap::parse_configdoes callvalidate(), so the FFI validation sentence is accurate — but it does not resolve${VAR}placeholders or apply env overrides. Nothing here implies it does; that gap is the subject of #23.Two open questions resolved (both were already answered by shipped code): the
Session.device_id/user_agent/ip_addresswiring in01-domain-model.md, and theUnauthorizedvsUserSuspendedrejection-branch question in03-service-flows.md.Interaction with the open spec PRs. No file overlap — #18–#27, #30 and #31 only add files under
.specs/changes/, and #28 only touches.specs/README.md. This PR touches only canonical pages, so it merges independently in any order. It does complete merge-plan step 1 that #23 and #25 both call for, which shortens their eventual merge.Spec pages only — no source changes, no change-spec files touched.