╭ changed ──────────╮ │src/event/Issue.zig│ ╰───────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │49 return std.mem.splitScalar(u8, tags, ' '); │ │50 } │ │51 │ │52 -// a title is required, and a too-long tag would fail consumption after the│ │53 -// event is already committed │ │52 +// a title is required, and a too-long tag would go unindexed once consumed│ │53 pub fn fieldsValid(title: []const u8, tags: []const u8) bool { │ │54 if (title.len == 0) return false; │ │55 var tag_iter = tagIterator(tags); │ ╰───────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │135 │ │136 var tag_iter = tagIterator(record.event.tags); │ │137 while (tag_iter.next()) |tag| { │ │139 - if (tag.len == 0) continue; │ │140 - if (tag.len > tag_max_len) return error.TagTooLong; │ │138 + // an over-long tag goes unindexed rather than failing the consume, │ │139 + // which would wedge the branch it arrived on │ │140 + if (tag.len == 0 or tag.len > tag_max_len) continue; │ │141 var key_buffer: TagStatusKey = undefined; │ │142 const tag_set_cursor = try tag_to_issues.putCursor(try tagStatusKey(&key_buffer, tag, record.event.status));│ │143 const tag_set = try DB.SortedSet(.read_write).init(tag_set_cursor); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────╮ │259 ) !void { │ │260 var tag_iter = tagIterator(tags); │ │261 while (tag_iter.next()) |tag| { │ │262 - if (tag.len == 0) continue; │ │262 + // skipped the same way consume skipped it, so it was never indexed│ │263 + if (tag.len == 0 or tag.len > tag_max_len) continue; │ │264 var key_buffer: TagStatusKey = undefined; │ │265 const key = try tagStatusKey(&key_buffer, tag, status); │ │266 const tag_set_cursor = try tag_to_issues.putCursor(key); │ ╰────────────────────────────────────────────────────────────────────────────────╯