search for standard sites pub-search.waow.tech/
search zig blog atproto

refactor: use zat.AtUri.format in tap.zig

- update zat dependency to get extractAt fix (ignore_unknown_fields)
- replace std.fmt.allocPrint with zat.AtUri.format for AT-URI construction
- avoids allocation by using stack buffer

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Changed files
+4 -4
backend
+1 -1
backend/build.zig.zon
··· 14 14 }, 15 15 .zat = .{ 16 16 .url = "https://tangled.sh/zat.dev/zat/archive/main", 17 - .hash = "zat-0.1.0-5PuC7jCDAQALUWX2KlMvtxPfiUvfvv_pUQfloalBnQkA", 17 + .hash = "zat-0.1.0-5PuC7heIAQA4j2UVmJT-oivQh5AwZTrFQ-NC4CJi2-_R", 18 18 }, 19 19 }, 20 20 .paths = .{
+3 -3
backend/src/tap.zig
··· 217 217 // validate DID 218 218 const did = zat.Did.parse(rec.did) orelse return; 219 219 220 - // build AT-URI string 221 - const uri = try std.fmt.allocPrint(allocator, "at://{s}/{s}/{s}", .{ did.raw, rec.collection, rec.rkey }); 222 - defer allocator.free(uri); 220 + // build AT-URI string (no allocation - uses stack buffer) 221 + var uri_buf: [256]u8 = undefined; 222 + const uri = zat.AtUri.format(&uri_buf, did.raw, rec.collection, rec.rkey) orelse return; 223 223 224 224 if (rec.isCreate() or rec.isUpdate()) { 225 225 const inner_record = zat.json.getObject(parsed.value, "record.record") orelse return;