Skip to content

Conversation

soulomoon
Copy link
Owner

No description provided.

Renames getOptions to getOptionsWorker for clarity
Removes redundant getOptionsLoop function
Ensures session loading is called under the same `Action` context
…work, and plumb test mode

- Introduce DirectKey and newDirectKey for internal/ephemeral action keys
  - Export pattern DirectKey from graph and types modules
  - Update fromKey/fromKeyType to return Nothing for DirectKey
  - Render and Show support for DirectKey
- Ensure rule machinery rejects DirectKey (no associated rules)
  - addRule/runRule now error on DirectKey
- Use DirectKey for DeliverStatus in pumpActionThread
  - Avoids using the “root” key and enables per-action identity
- Make shakeRunDatabaseForKeysSep test-aware and filter reenqueued work
  - Add Bool isTesting parameter (propagated from ghcide newSession)
  - When not testing, filter reenqueued items that are preserved/unaffected
- Preservation API changes
  - incDatabase/incDatabase1 now return a KeySet of preserved work
  - computeToPreserve returns (unaffected, preservedSet) and uses deliver keys
- Refactor runtime deps mapping
  - Rename databaseRuntimeDep -> databaseRuntimeDepRoot
  - Track reverse deps as before; additionally record deps under root DirectKey parents
  - Update insert/delete helpers and add isRootKey predicate
- Action queue utility
  - Export countInProgress for visibility into in-progress actions

BREAKING CHANGES:
- shakeRunDatabaseForKeysSep now takes an additional Bool (isTesting)
- incDatabase/incDatabase1 return KeySet instead of [Key]
- databaseRuntimeDep renamed to databaseRuntimeDepRoot and related helpers adjusted

Call sites have been updated accordingly in ghcide.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants