XF 2.3 What's new in XenForo 2.3.10?

Later this week we will be releasing XenForo 2.3.10 with a couple of notable additions for developers.

Phrase tools​

For more years than I've been at the company, we have had an internal tool which we use during development of features to help us keep on top of phrases. It scans the code base to detect strings in templates that might need to become phrases and also looks for certain delimited strings in PHP code that can also be converted to phrases.

In XenForo 2.3.10 we have (finally!) polished this up and converted them to CLI commands.

Template and Template Modification phraser​


Here's the full help text for the command. The xf-dev:template-modification-phraser command is nearly identical:

Code:
Description:
  Analyzes and applies phrase replacements in templates

Usage:
  xf-dev:template-phraser [options]
  xf-dev:phraser-template

Options:
      --addon=ADDON                  Add-on ID to process
      --template=TEMPLATE            Template in type:title format
      --all                          Process all phrasable templates for the add-on (default when --template is omitted)
      --phrase-prefix=PHRASE-PREFIX  Prefix for generated phrase names
      --dry-run                      Analyze and preview only; do not apply changes
      --yes                          Skip confirmation prompts
      --json                         Output as JSON
      --preview-lines=PREVIEW-LINES  Context lines around each change [default: 2]
  -h, --help                         Display help for the given command. When no command is given display help for the list command
  -q, --quiet                        Do not output any message
  -V, --version                      Display this application version
      --ansi|--no-ansi               Force (or disable --no-ansi) ANSI output
  -n, --no-interaction               Do not ask any interactive question
  -v|vv|vvv, --verbose               Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

So let's say you've just finished some work on your add-on and now you want to change all of your hard coded text to phrases. Just run the command with the --addon option and your development output will be scanned for strings that look like they should be phrased:

1772736054983.webp


You will be given a list of changes, template by template (if you omit the --template option) and you can pick all, some or none of them to apply.

If phraseable text is found that already exists as a phrase, using that phrase will be suggested instead, e.g.

1772737564207.webp


In some cases, you may need to add delimiters when you're writing your text in templates in order to explicitly define the start and the end of the phraseable text. A common reason to do this is where your text spans multiple lines or contains HTML.

For example if your template contains:

HTML:
Edit note <b>{$note.title}</b>

And you want to ensure this entire line gets phrased correctly, wrap it like this:

HTML:
~~Edit note <b>{$note.title}</b>~~

1772738129664.webp


You'll notice from the above example that variable interpolation works too!

File phraser​

The file phraser works almost identically. Here's the help page:

Code:
Description:
  Analyzes and applies phrase replacements in add-on PHP files

Usage:
  xf-dev:file-phraser [options]
  xf-dev:phraser-file

Options:
      --addon=ADDON                  Add-on ID to process
      --file=FILE                    Single file path relative to the add-on root
      --all                          Process all phrasable files for the add-on (default when --file is omitted)
      --phrase-prefix=PHRASE-PREFIX  Prefix for generated phrase names
      --dry-run                      Analyze and preview only; do not apply changes
      --yes                          Skip confirmation prompts
      --json                         Output as JSON
      --preview-lines=PREVIEW-LINES  Context lines around each change [default: 2]
  -h, --help                         Display help for the given command. When no command is given display help for the list command
  -q, --quiet                        Do not output any message
  -V, --version                      Display this application version
      --ansi|--no-ansi               Force (or disable --no-ansi) ANSI output
  -n, --no-interaction               Do not ask any interactive question
  -v|vv|vvv, --verbose               Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

The key difference with file phrases is you have to wrap phraseable text with double tildes ~~ for it to be phrased:

1772738400787.webp


Finding unused phrases​

Given enough time, you may end up accumulating phrases in your add-on that become unused as you refactor code. There's a command for that too. Here's the help page:

Code:
Description:
  Finds and optionally deletes unused master phrases for an add-on

Usage:
  xf-dev:unused-phrase-finder [options]

Options:
      --addon=ADDON     Add-on ID to process
      --json            Output as JSON
      --show-unknown    Show unknown used phrase titles in text mode
      --delete=DELETE   Comma-separated phrase IDs or titles to delete (unused only)
      --delete-all      Delete all currently unused phrases
      --yes             Skip confirmation prompts
  -h, --help            Display help for the given command. When no command is given display help for the list command
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Unfortunately, we haven't run it in XF for a while 🫣 but if you were to run it on your own add-on and pass the --delete-all option you can remove unused phrases after confirmation:

1772739002323.webp


XenForo AI skills installation​

When working with any framework, but particularly commercially licensed frameworks like XenForo, interactions with AI can be... interesting. Although this has improved dramatically with the rise of agentic AI where AI agents can just look through your code, the probability of running into hallucinations or mistakes is still fairly high.

The solution to this problem is to have a strong set of documentation that can provide steering to the AI agent and a point of reference to clarify certain patterns, best practices, available commands or just generally how to do things.

You can certainly write all of this yourself. You can write a CLAUDE.md file (or AGENTS.md for everyone else) which provide strong steering. You can also write your own "skills" to aid the agent in performing certain tasks. But with XenForo 2.3.10 you won't have to :)

We have written a new command xf-dev:install-ai-agents which will automatically install a very strong set of instructions for your chosen AI agent and output those into the relevant locations. Unfortunately there are multiple file naming conventions depending on which agent/tool you are using, and this command handles that too.

Code:
Description:
  Install AI agent convention files

Usage:
  xf-dev:install-ai-agents [options]

Options:
  -f, --force           Overwrite files if they already exist
      --with-claude     Install default files plus Claude-compatible files
      --only-claude     Install only Claude-compatible files
      --dry-run         Show which files would be written without making changes
  -h, --help            Display help for the given command. When no command is given display help for the list command
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Running it with no options will output files that are compatible with most non-Claude models/agents such as ChatGPT Codex or Open Code. If you're only using Claude then you can run it with the --only-claude option. Or if you're switching between multiple tools you can run it with the --with-claude option.

All agents get mostly the same files with the primary differences just being in the locations they are saved or their file names. e.g. by default you will get a AGENTS.md file rather than a CLAUDE.md file.

1772739950142.webp


I'm not going to go into full details of everything the files include, but the rough structure is like this:

CLAUDE.md / AGENTS.md​

This is a fairly short overview of the framework, where to find certain files and the key patterns that the agent should be aware of up front. It then also outlines a number of skills and what they are for, and these are discussed below.

xf-shared-policy​

These are the general policies that touch both sides of development including both core and add-on development. It explains things like the development output system, the xf-make commands, and general guiding principles to help agents stay on track.

xf-core-dev​

Not going to be relevant for most of you, but this is a bunch of handy general conventions for core development for use by the XenForo team.

xf-addon-dev​

This explains things like how to know the correct add-on ID, understanding of version numbers, steering away from manually editing .xml files, and other references relevant to add-on development directly.

xf-scaffold-make​

This skill describes how to use the xf-make commands in more detail and some general steering of dos and don'ts related to generating development artifacts.

xf-template-phrase​

This describes how templates and phrases work including a brief reference of some of the language semantics we use in the XenForo template syntax.

Collectively these skills make working with AI agents and XenForo a lot more stable and predictable. Though, as ever with these things, it's worth keeping in mind that your mileage may vary and you should very much expect AI agents to sometimes get it wrong, or get lost. I would urge you to still review every line of code written by agents and understand what is happening!
 
I guess he is referring to XF 2.4 which is delayed for months without any real reasons.
Probably. So this is probably the next useful thread that will foreseeably be destroyed and become unreadable in near future (and finally be locked). Posting completely off topic, full quoting a random posting that has no connection to what @Arnox desires and at the same time applying for the price of the vague poster of the week regarding the content of his post is a promising start.

It is really astonishing: People in this forum all run forums themselves. Yet the ability to follow even the most basic rules of basically any forum on earth like "make clear what you want to say", "don't full quote if there is no need" or "stick at least loosely to the thread topic" seem to be completely alien to some. Why on earth do these people with their (understandable) disappointment deliberately destroy existing threads in a row instead of simply opening a dedicated one for their topic? It's not that opening a thread would cost money.
 
I guess he is referring to XF 2.4 which is delayed for months without any real reasons.
It seems incorrect to say that the release of version 2.4 is delayed if no release dates were ever promised in the first place.
It is really astonishing: People in this forum all run forums themselves. Yet the ability to follow even the most basic rules of basically any forum on earth like "make clear what you want to say", "don't full quote if there is no need" or "stick at least loosely to the thread topic"
It seems like everyone is actually staying on topic. Nobody here is discussing Trump or Toy Story 5.
Forums are already dying...
And unjustified bans and deletions only speed up that process.
 
It seems incorrect to say that the release of version 2.4 is delayed if no release dates were ever promised in the first place.
I guess even XenForo staff would state that 2.4 is delayed, this has never been denied and it would be ridiculous to do so today. This has nothing to do with wether a promise for a certain release date was given or not (indeed it was not).

Forums are already dying...
If that was true (it is clearly not true for mine) it is clearly not b/c of lack of off topic posts or b/c a forum's culture dislikes them. Rather the opposite. If your forum is dying you should look for the reasons.

It seems like everyone is actually staying on topic.
Maybe you better check what the thread topic is...
And unjustified bans and deletions only speed up that process.

Who is talking about deleting or deletion? I was talking about self discipline and self awareness of a poster what he is doing. One could assume both could be expected in a forum that is populated by actual forum admins.
 
I guess even XenForo staff would state that 2.4 is delayed, this has never been denied and it would be ridiculous to do so today. This has nothing to do with wether a promise for a certain release date was given or not (indeed it was not).
I found a message posted by the administration on June 13, 2025 - "XenForo 2.4 is not 3 more years away." (с)
That means that, until June 13, 2028, it is somewhat inaccurate to talk about delays.
 
Yeah, that is what they stated later in the development stage.
"Thank you for joining us on this first look into the new editor we're implementing in XenForo 2.4. We're excited to get this in your hands in 2025."

To me, this sounds like they're talking specifically about the new editor, which they expected users to get access to in 2025 (in XF 2.3), rather than making a firm statement that XenForo 2.4 itself would be released in 2025.
 
I really can't be bothered to search for it but you'll find somewhere an announcement that the delayed update containing the TipTap editor was due to a new version of that editor being released.
 
Yeah, this ^
There was a major TipTap release version scheduled, so it made sense at the time to delay integration until that came out.
 
I really can't be bothered to search for it but you'll find somewhere an announcement that the delayed update containing the TipTap editor was due to a new version of that editor being released.

Yeah, that was TipTap 3. It's been stable for nearly a year now, so clearly that wasn't the only reason for delaying 2.4.
 
Having reviewed some release history, I guess perhaps I'm being a little unreasonable here. Having said that, the release of 2.4, or lack of it, even though it was supposed to be a smaller patch, is troubling me, and as the time between released updates continues as well, it is making me very uneasy.
 
"Thank you for joining us on this first look into the new editor we're implementing in XenForo 2.4. We're excited to get this in your hands in 2025."

To me, this sounds like they're talking specifically about the new editor, which they expected users to get access to in 2025 (in XF 2.3), rather than making a firm statement that XenForo 2.4 itself would be released in 2025.


We are currently targeting a release between Q4 2024 and Q1 2025.
 
That's predicted.
Yes it's late if you took that seriously. Nobody takes predictions seriously.
Think of it as your weather forecast. They aren't always correct.
It's like your footy tips that you put in. Your team isn't going to win every time
 
That's predicted.
Yes it's late if you took that seriously. Nobody takes predictions seriously.
Think of it as your weather forecast. They aren't always correct.
It's like your footy tips that you put in. Your team isn't going to win every time

This has literally nothing to do with what I quoted, but thanks? A nearly 2 year delay on a "prediction" is hardly normal or expected though, by any means
 

I raise you on xf3.


When is it available?
There is no release schedule at this time.
This post will be updated as things progress
but the most accurate date we have at the moment is some time in 2024, after 2.3 has been officially released.


Just gave up and couldnt even bother to update the year from 2024 to 2025 to 2026 to...

At this point, the team should just take some time off from 'development' and just learn basic communication skills.
 
Back
Top Bottom