Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
1203647
runtime/claude_code: materialize images to tmpfile so the CLI's Read …
benhoverter May 2, 2026
021c6df
fix(runtime/claude_code): atomically publish materialized image tmpfiles
benhoverter May 3, 2026
46e5c8c
fix(runtime/claude_code): pass --add-dir for materialized image tmpfiles
benhoverter May 3, 2026
c93318f
refactor(runtime): extract image_cache module
benhoverter May 3, 2026
3313acf
fix(runtime/image_cache): refresh mtime on cache hit
benhoverter May 3, 2026
e8de324
fix(runtime/compactor): preserve http(s) source_url across compaction
benhoverter May 3, 2026
a13171d
fix(runtime/claude_code): drop needless borrows on materialize_image …
benhoverter May 4, 2026
0995c9c
channels: add mime and size to ChannelContent::File
benhoverter Apr 30, 2026
85865af
channels/bridge: support file:// URLs in download_image_to_blocks
benhoverter Apr 30, 2026
03f5fc1
discord: log raw MESSAGE_CREATE/UPDATE payloads at debug
benhoverter Apr 30, 2026
a823d0d
channels: handle Discord image attachments coherently across providers
benhoverter Apr 30, 2026
56f4b61
feat(channels/discord): outbound for ChannelContent::File and Image U…
benhoverter May 3, 2026
b7d8c1f
fix(channels/discord): SSRF guard + redirect revalidation + log scrub…
benhoverter May 3, 2026
f19a324
feat(channels/discord): outbound Multipart arm with N-attachment batc…
benhoverter May 3, 2026
9513e37
test(channels/discord): exercise per-block resolver dispatch in mixed…
benhoverter May 3, 2026
0c8d4ce
pr-c cleanup: extract Fetcher trait, drop ssrf_bypass field
benhoverter May 3, 2026
a85676b
pr-c cleanup: collapse Multipart classify+resolve into one pass
benhoverter May 3, 2026
4adeb24
pr-c cleanup: collapse field_name to single format!("files[{i}]")
benhoverter May 3, 2026
8dc7a5e
pr-c cleanup: parallel attachment fetch via try_join_all
benhoverter May 3, 2026
a9b15e8
pr-c cleanup: aggregate per-chunk byte cap with greedy-pack chunker
benhoverter May 3, 2026
c644c7d
pr-c cleanup: lock in body-aware 429 retry on the multi-file path
benhoverter May 3, 2026
bb236ea
pr-c cleanup: structured partial-send WARN with grep-friendly event
benhoverter May 3, 2026
4ef2b39
pr-c cleanup: address Opus reviewer S2 findings
benhoverter May 3, 2026
44658b4
pr-c cleanup: DRY the two 429 retry tests through a shared stub helper
benhoverter May 4, 2026
b69386b
channels/bridge: disable transparent decompression on image download
benhoverter May 4, 2026
4541fc8
channels/bridge: outbound attachment parser (<openfang:attach .../>)
benhoverter May 4, 2026
d21edf9
image_cache: retain inbound filename hint in materialized tmpfile names
benhoverter May 4, 2026
7b27901
image_cache: open writable for set_modified (Windows fix)
benhoverter May 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion crates/openfang-api/src/openai_compat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,11 @@ fn convert_messages(oai_messages: &[OaiMessage]) -> Vec<Message> {
.unwrap_or(parts[0])
.to_string();
let data = parts[1].to_string();
Some(ContentBlock::Image { media_type, data })
Some(ContentBlock::Image {
media_type,
data,
source_url: None,
})
} else {
None
}
Expand Down
2 changes: 2 additions & 0 deletions crates/openfang-api/src/routes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,7 @@ pub fn resolve_attachments(
blocks.push(openfang_types::message::ContentBlock::Image {
media_type: content_type,
data: b64,
source_url: None,
});
}
Err(e) => {
Expand Down Expand Up @@ -512,6 +513,7 @@ pub async fn get_agent_session(
openfang_types::message::ContentBlock::Image {
media_type,
data,
..
} => {
texts.push("[Image]".to_string());
// Persist image to upload dir so it can be
Expand Down
2 changes: 2 additions & 0 deletions crates/openfang-channels/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ sha1 = { workspace = true }
aes = "0.8"
cbc = "0.1"
base64 = { workspace = true }
bytes = { workspace = true }
hex = { workspace = true }
html-escape = { workspace = true }
regex-lite = "0.1"
Expand All @@ -42,3 +43,4 @@ rumqttc = { workspace = true }

[dev-dependencies]
tokio-test = { workspace = true }
tempfile = { workspace = true }
Loading
Loading