Suttas sprinkled with empty notes on variant

Hi all,
I’m not sure what’s happening to the system, but I see suttas having empty notes all over the place. It shows up like this:

3 Likes

Looks like five days ago all the empty segments got their own keys in the json file.

2 Likes

And every segment gets an asterisk.

(Side note: If you just showed me that screen shot I would bet it was made by Claude. It’s got that AI color scheme, lol.)

3 Likes

The Bilara data format is being updated to list every segment in the variant and references files. The website will need to be adjusted so that it doesn’t display the segments that don’t actually have variants. Are the references going crazy as well?

2 Likes

They are a bit of a different situation. All segments have at least the main refs, so I think there has always been a key for every segment. The only refs that don’t show are those for titles, and they still aren’t’ showing.

1 Like

You mean me using Claude? No, I’m a bit old fashioned. It’s made with the default Microsoft snipping tool. I have no idea Claude can automate stuff like reporting issue on a forum. I have never bother to learn how to use any AI agent because I’m jobless.

1 Like

No, no. The screenshot I shared. it has the color scheme and rounded corners of AI design.

4 Likes

Ugg, @hongda we need to fix this right away, the segments must only show when variants (or comments or anything else) have actual content.

3 Likes

Ok, I have fixed this problem.

1 Like

Bhante @Snowbird , you are right, it was refactored about 12 months ago and was generated with the assistance of Copilot.

My stance on today’s LLMs is that they absolutely should not be allowed to get involved in upon the realm of enlightenment. for example, the translation of Buddhist suttas, because LLMs cannot truly understand the Buddha’s teachings and the meditation experience, therefore, they absolutely should not be used in this field.

However, I will try to use them to provide some assistance in programming; they really do help expand the boundaries of knowledge, this will save a lot of time and money.

2 Likes

Thanks. That’s fast. You’re the best!

2 Likes

I’m a human with 20+ years of web interface design experience. I’m always happy to lend an actual eye, rather than follow AI trends.

7 Likes

I completely agree, that is certain.

2 Likes

For reference, here’s the corresponding PR.

Same for my experience in many programming domains. I’ve been a tech lead of Front-End, Full-Stack, Infra/SRE/DevOps, Security, etc teams for 10+ years and was a Sr Lead for 8+ teams at my last job (see links in my profile). Always happy to help fill in knowledge gaps where I can, including non-programming domains where I have expertise too (worn most hats at start-ups)

5 Likes

I don’t know if it has the same cause, but I’ve noticed that references are not displaying when selected. The main references are (I assume) derived from segment numbers, and they show on the website. But other references are missing when I try to turn them on.

2 Likes

I can confirm the same behaviour. Specifically SN22.53.

Also (and perhaps unrelated) when turning on the PTS I am getting this in the toast:

2 Likes

Investing in unit tests to catch regression may be a good thing. But it’s probable that HongDa is stretched razor thin being the sole developer. I am just talking out of my butt because I am not familiar with modern web development to give any informed opinion.

2 Likes

Same, I can reproduce that.

I double-checked my dev environment (which hasn’t pulled the latest bilara-data changes yet) to make sure that wasn’t a bug one of my tiny changes made, and I can still see other references on my dev machine:
Screenshot 2026-08-25 at 10.58.58 AM

The empty string change did affect reference JSON files too, e.g. SN23.12#L2

There’s an error in the browser console that points to why that change is affecting references too:

Uncaught (in promise) SyntaxError: Failed to execute 'querySelector' on 'Element': '#' is not a valid selector.
    at 7877.js:2580:6161
    at Array.forEach (<anonymous>)
    at S._addReferenceAnchor (7877.js:2580:6139)
    at 7877.js:2580:6003
    at Array.forEach (<anonymous>)
    at S._addReferenceText (7877.js:2580:5917)

That points out that querySelector("#") is invalid. The code’s minified in prod, but it refers to this line in the TextBilara component. The error is hit on the first empty string reference and so the code isn’t ran for further actual references.

I can fix that one line, but given that there have been at least 4 bugs found so far with this same root cause, I’m not so sure individual fixes are the appropriate way to handle this.
I might recommend reverting the empty string change, although I’m not sure why it was made in the first place. It is causing a variety of bugs (some of which are due to a new lack of distinction between intentional omissions and lack of localizations), makes the data a lot bigger, and causes more computational load (more keys with empty string values to process).

That one’s pre-existing, been around for a while afaik. I mentioned it was missing localization entries in a prior bug report too.

EDIT: I wrote up a draft PR to fix that, see bug reports thread

Generally speaking, yes, although the empty string root cause was a change in bilara-data, so it wouldn’t have been caught by unit tests in the suttacentral repo until after the change anyway. Similar concept as when even 100% test coverage doesn’t mean the tests will catch every bug. The addition of an empty string is also not something one can easily search, unlike a named symbol (variable, function name, etc)
The manual “what else could this change affect?” is always useful, if you can remember enough :sweat_smile:

3 Likes

I’m not sure what causes the following blank name in the Suttaplex card of SN1.1


I suspect it has the same root cause.

3 Likes

The link points to suttacentral.net/sn1.1/en/null.

3 Likes