Conversation
Recover squash-related files from dangling stash commit: - squash tool implementation and utils - squash, discard-extract, discard-squash, extract-squash, all prompt variants - system and nudge prompts for all tool combinations
- Add ulid dependency for generating unique IDs - Replace timestamp-based ID counter with ulid - Ensures unique IDs across parallel operations
- Move squashSummaries out of prune object to top-level state - Add resetOnCompaction utility to clear stale state after compaction - Move findLastCompactionTimestamp and countTurns to state/utils.ts - Update isMessageCompacted to also check prune.messageIds - Update persistence to save/load squashSummaries at top level
- Move findStringInMessages, collectToolIdsInRange, collectMessageIdsInRange from squash.ts to tools/utils.ts for reusability - Keep squash.ts focused on tool definition and execution logic - Follows existing pattern where collectContentInRange lives in utils.ts
When opencode runs with OPENCODE_SERVER_PASSWORD set, the server requires HTTP Basic Auth. This adds auth utilities to detect secure mode and configure the SDK client with an interceptor that injects the Authorization header on all requests. Fixes #304
…of creating new ones
- revert terse PR 313 style back to verbose prose format from dev branch - clarify tool triggers: discard/extract for individual outputs, squash for phases - remove 'task complete' trigger from discard/extract (exclusive to squash) - add instruction to not use discard/extract without prunable-tools list - replace 'task/sub-task' terminology with 'phase' to avoid conflict with Task tool
- Use tool part injection for DeepSeek/Kimi (requires reasoning_content in assistant messages) - Use text part injection for other models (cleaner approach) - Add prunedMessageCount to context breakdown display
refactor(prompts): dcp prompt system + prompt dx cli + new tool names
docs: add uniform token pricing providers to best use cases
Config loader now checks XDG_CONFIG_HOME before falling back to ~/.config/opencode. Logger now uses XDG_DATA_HOME (defaulting to ~/.local/share) for log storage, which is where runtime data belongs per the XDG Base Directory Specification. No behavior change for users with default (unset) XDG paths.
STORAGE_DIR in persistence.ts also hardcoded ~/.local/share instead of checking XDG_DATA_HOME. Same pattern as the logger fix.
Fix XDG base directory support for config and log paths
Mirroring opencode permissions mechanic for dcp config
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.
Summary
compresstool to collapse large sections of conversation into concise summaries using boundary-string matching.contextLimit(set to a token count or"model").OPENCODE_SERVER_PASSWORDis set.pruneNotificationTypeconfig option ("chat"or"toast").write/editare no longer protected by default./dcp statsdisplay and/dcp contextbreakdown.apply_patchandmultiedittools.XDG_CONFIG_HOME.enabled: booleantopermission: "ask" | "allow" | "deny"to mirror opencode mechanics.