Open question: could error/init.lua's uuid dependency be made lazy to break the error->uuid->fs->sys cycle? #52
Labels
No labels
coordination/cross-repo
coordination/needed
effort
large
effort
medium
effort
small
meta/duplicate
meta/planning
meta/wontfix
priority
high
priority
low
priority
medium
session
blocker
session
handover
session
next
status
blocked
status
done
status
in-progress
status
review
status
to-go
type
admin
type
bug
type
config
type
deployment
type
docs
type
enhancement
type
feature
type
handover
type
infrastructure
type
installation
type
maintenance
type
migration
type
research
type
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
DAW/daw-lua-common#52
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?
Background
During the
#50error-handling pass, theerror -> uuid -> fs.handle -> fs.dir -> sysload-time cycle (deferredrequire("daw.common.error")in
sys.lua,fs/dir.lua,fs/handle.lua,uuid.lua) wasrediscovered and investigated from scratch, including a
git logsearch to confirm it was deliberately introduced in the
daw_error/v1migration (commit51cab24, 2026-08-06), not anaccident. It was left completely untouched -- only the fallback
value at the "daw.common.error itself unavailable" boundary changed
(plain string -> the
daw-error-facility-unavailablesentinel fromDAW/daw-contracts#11).The cycle and the reasoning behind it are now documented in
docs/error.md,docs/fs.md,docs/sys.md, anddocs/common-uuid.md.Open question (not decided)
Mid-session, a possible way to break the cycle entirely was proposed:
error/init.luaonly usesdaw.common.uuidfor a quality-of-idupgrade (a real UUID v4 instead of its own local
fallback_id()), notstructurally -- it already tolerates
uuidbeing unavailable. Makingthat
require("daw.common.uuid")lazy (deferred to call time, insideM.new(), the same pattern already used elsewhere fordaw.common.error) would remove the one eager edge that closes theloop.
This was explicitly not decided -- the session was paused before
evaluating it further, specifically to avoid further architecture
churn on the same afternoon.
Goal
Hold this open question so it can be picked up deliberately in a
future session, instead of being rediscovered/re-investigated from
scratch again (as happened this session).
Scope
No code change is decided or requested by this issue. When revisited,
evaluate:
error/init.lua'srequire("daw.common.uuid")to call time is worth doing (removes the cycle vs. keeps working
code unchanged);
pattern in
sys.lua/fs/dir.lua/fs/handle.lua/uuid.lua;Acceptance criteria
whenever this is revisited.
error/init.lua'suuiddependency is deferred,the cycle is broken, and
docs/error.md/docs/fs.md/docs/sys.md/docs/common-uuid.mdare updated accordingly.so the question doesn't get re-investigated from scratch again.
Related
DAW/daw-contracts#11DAW/daw-docs#26DAW/daw-lua-common#50