update QoL and ai integration

This commit is contained in:
2026-07-29 14:16:14 +02:00
parent 1d90e364ee
commit 027057e85f
14 changed files with 1893 additions and 84 deletions

View File

@@ -273,15 +273,24 @@ max_calls = 8
max_request_bytes = 180000
max_run_bytes = 900000
max_file_bytes = 150000
max_context_rounds = 2 # automatic file-request rounds for a thread
max_context_files = 8 # additional files per thread discussion
store_directory = ""
exclude = [
"*.lock", "go.sum", "package-lock.json", "vendor/", "node_modules/",
"dist/", "build/", "generated/", "coverage/", "*.generated.*",
"*_generated.*", "*.min.js", "*.map", ".env", ".env.*", "*.pem",
"*.key", "*.p12", "*.pfx", "*credentials*",
"*_generated.*", "*.min.js", "*.map",
]
sensitive_paths = [
".env", ".env.*", "*.pem", "*.key", "*.p12", "*.pfx",
"*credentials*",
]
```
As with other TOML arrays, setting `exclude` or `sensitive_paths` replaces its
default list. Copy the defaults you still want before adding project-specific
patterns.
`dashboard_mode = "hotkey"` opens threads directly from the picker and leaves
the dashboard on `d`. `"intermediate"` places the dashboard between the picker
and thread viewer.
@@ -298,6 +307,13 @@ Thread categories are:
- `outdated`: unresolved threads attached to outdated code; and
- `resolved`: all resolved threads, including resolved-and-outdated threads.
New threads retain a `NEW THREAD` marker. When an existing thread receives new
comments, diple places a `NEW MESSAGES` divider before the first unread comment
and emphasizes the unread comment rail. Moving the thread-list cursor does not
clear this state. It is cleared after the last unread comment becomes visible
while scrolling the focused detail pane, or manually with
`keybindings.threads.mark_read` (`m` by default).
Within a category, `"file"` keeps paths together and `"timestamp"` sorts by
the time the thread was opened.
@@ -394,6 +410,7 @@ search = ["/"]
clear_filter = ["F"]
next_unread = ["n"]
previous_unread = ["N"]
mark_read = ["m"]
reply = ["c"]
resolve = ["R"]
toggle = ["enter"]
@@ -490,19 +507,31 @@ The `A` menu can:
- review the current PR and create local-only review threads;
- discuss an existing local AI thread with the same selected model;
- add local-only context to existing unresolved GitHub threads;
- let a focused thread discussion request bounded, exact-head repository files;
- produce small GitHub-style suggestion blocks for contained changes;
- refresh provider status without making an inference call; and
- run one explicitly confirmed, minimal provider test that consumes quota but
sends no PR contents.
Before a review, diple shows the exact head commit, selected model, included and
excluded files, byte count, maximum model-call count, and redaction count.
Every run requires confirmation.
Before a review, diple shows the exact head commit, selected model, initial
included and excluded files, byte count, maximum model-call count, and
redaction count. Every run requires confirmation. A focused thread confirmation
also shows its repository-tree summary and the configured automatic
file-request limits.
AI input comes from the authenticated GitHub PR diff and PR metadata, not from
the local checkout. diple excludes configured sensitive, generated, vendored,
lock, binary, and oversized files; redacts secret-like values; chunks bounded
requests; and validates findings against lines changed in the prepared head.
Full reviews use the authenticated GitHub PR diff. Focused discussions instead
send only the selected thread, its hunk, the complete target file when allowed,
minimal PR identifiers, and a bounded tree for the exact PR head. The model can
request additional paths from that tree, but diple validates and retrieves
their committed blobs through GitHub; the provider never receives local
checkout access.
`sensitive_paths` are absent from the model-visible tree and can never be
requested. `exclude` paths may appear as unavailable tree entries but their
contents are not sent. Binary, submodule, oversized, generated, vendored, and
lock-file content remains unavailable. All supplied content is bounded,
control-sanitized, and checked for secret-like values. Full-review findings
remain restricted to visibly changed lines in the prepared head.
The Codex process runs ephemerally in an empty temporary directory with:
@@ -516,7 +545,9 @@ The Codex process runs ephemerally in an empty temporary directory with:
Attempted tool or file-change events fail the run. Provider output is bounded
and sanitized. Progress may display a provider-exposed reasoning summary, but
diple neither requests nor displays hidden chain-of-thought.
diple neither requests nor displays hidden chain-of-thought. Progress and
Health report GitHub, filtering, and provider timing without storing prompts or
repository contents.
AI findings are stored locally, deduplicated deterministically, and marked
outdated when the PR head changes. Resolving a local AI thread remains local.