Settle audit refactoring scope and defer follow-up work
This commit is contained in:
@@ -1,12 +1,76 @@
|
||||
# Potential Future Features
|
||||
# Potential Future Work
|
||||
|
||||
This document lists potential enhancements for consideration in future ConfigKit
|
||||
releases. Entries are not accepted contracts, implementation plans, or release
|
||||
commitments. Adopting a candidate requires an explicit design decision and a
|
||||
separate plan. Significant architectural exclusions and their rationale belong
|
||||
This document lists potential enhancements and maintenance work for consideration
|
||||
in future ConfigKit releases. Entries are not accepted contracts, implementation
|
||||
plans, or release commitments. Adopting a candidate requires an explicit design
|
||||
decision and a separate plan. Significant architectural exclusions and their rationale belong
|
||||
in ADRs; this document does not maintain a list of rejected proposals.
|
||||
|
||||
## 1. Recursive body merging for identified records
|
||||
## 1. Separate glob entry preparation from traversal
|
||||
|
||||
Status: deferred; consider after the selected work in the
|
||||
[consolidated audit roadmap](audit.md) is complete. Audit ID: C03.
|
||||
Original source: complexity finding 4 at
|
||||
`ecd5d5d:docs/roadmap/complexity.md`; assessed priority: medium.
|
||||
|
||||
The patterned branch of `selectGlobImportCandidates` in
|
||||
[glob.go](../../internal/engine/glob.go) interleaves component traversal and
|
||||
union/sorting with hidden/match rules, lexical/access paths, containment, links,
|
||||
directory eligibility, namespace differences, labels, and candidate construction.
|
||||
Directory selection already has a named entry-preparation operation.
|
||||
|
||||
Consider a glob-specific preparation helper returning an admitted candidate,
|
||||
ordinary skip, or diagnostic. Keep literal segments, component advancement,
|
||||
union/sorting, exclusions, and requiredness in the selector. Preserve inspection
|
||||
and error order, budgets, native namespace spelling, and selected-file validation.
|
||||
Share low-level filesystem facts only where semantics agree; the proposal does
|
||||
not require a general visitor framework, discovery-algorithm change, or caching.
|
||||
The selected directory-failure and link-resolution fixes do not depend on this
|
||||
readability refactor.
|
||||
|
||||
### Questions to resolve before implementation
|
||||
|
||||
- After the selected import fixes, does the entry-preparation boundary still
|
||||
reduce complexity and clarify lexical versus canonical path handling?
|
||||
- Which low-level operations can be shared with directory selection while
|
||||
keeping their distinct admission and traversal rules explicit?
|
||||
- Can existing behavioral tests protect ordering, diagnostics, and resource
|
||||
accounting without assertions about the new private helper structure?
|
||||
|
||||
## 2. Simplify redundant facade-to-engine transport
|
||||
|
||||
Status: deferred; consider after the selected work in the
|
||||
[consolidated audit roadmap](audit.md) is complete. Audit ID: F07.
|
||||
Original source: complexity finding 5 at
|
||||
`ecd5d5d:docs/roadmap/complexity.md`; assessed priority: low. The unused placement
|
||||
bridge removal is separately selected as audit F05.
|
||||
|
||||
Root conversion, engine facade-transport records, engine private defaults,
|
||||
decorators, and load normalization provide several mapping sites for the same
|
||||
import-default fields. Placement likewise uses a record plus a setter-style
|
||||
bridge. See [conversion.go](../../conversion.go),
|
||||
[lifecycle.go](../../lifecycle.go), [layered.go](../../layered.go),
|
||||
[import_spec.go](../../internal/engine/import_spec.go), and
|
||||
[destination.go](../../internal/engine/destination.go).
|
||||
|
||||
Consider one engine representation for import-default input and straightforward
|
||||
construction on existing option/input records, only if this reduces total
|
||||
concepts and mapping sites. Keep domain-rule and ownership conversions and
|
||||
separate registration compilation. Preserve root-owned types/signatures, both
|
||||
loading APIs, invalid-enum validation, nil-versus-empty patterns, and pointer/slice
|
||||
snapshots. A universal request DTO, generated mapper, public internal aliases,
|
||||
or adapter framework is not part of this proposal.
|
||||
|
||||
### Questions to resolve before implementation
|
||||
|
||||
- After unused bridges and fields are removed, does the remaining transport
|
||||
duplication still justify a refactor?
|
||||
- Which representations can be combined without losing ownership snapshots,
|
||||
presence distinctions, validation, or root-owned public types?
|
||||
- Would the proposed construction surface reduce total concepts and conversion
|
||||
sites, rather than relocate the same work behind another abstraction?
|
||||
|
||||
## 3. Recursive body merging for identified records
|
||||
|
||||
Status: deferred. The implemented
|
||||
[collection policy](../config.md#strict-document-composition) uses `upsert` to
|
||||
@@ -20,7 +84,7 @@ presence and ordering, and how provenance, history, sensitivity, and resource
|
||||
context follow partially retained records. Any change requires a new decision and
|
||||
implementation plan; this entry does not alter current upsert behavior.
|
||||
|
||||
## 2. Required version declarations for selected sources
|
||||
## 4. Required version declarations for selected sources
|
||||
|
||||
Status: deferred. PromptKit requested a way to require version declarations on
|
||||
a selected subset of source files while permitting other fragments to omit them.
|
||||
@@ -56,7 +120,7 @@ compatible version or replace final configuration validation.
|
||||
behavior for absent optional inputs and preserve source-local diagnostics,
|
||||
inspection evidence, and existing sensitivity handling.
|
||||
|
||||
## 3. Performance experiments
|
||||
## 5. Performance experiments
|
||||
|
||||
Status: deferred pending evidence. The completed performance audit identified
|
||||
four internal optimization candidates for separate investigation:
|
||||
|
||||
Reference in New Issue
Block a user