Looks like user-private-messages.js.es6 provides a direct reference to the userTopicsList controller, so you probably want to use that to lookup rather than going through the container.
# user-private-messages.js.es6#6
userTopicsList: Ember.inject.controller("user-topics-list"),
This also means that you can set a watch on the property() so that the computed property updates automatically when the userTopicsList changes
api.modifyClass("controller:user-private-messages", {
showMessagesCTA() {
return this.get("userTopicsList.model.topics.length") < 5
}.property("userTopicsList.model.topics.length")
})
Bonus points, I believe property() passes its arguments into the method (and if not, using the @on decorator does), so you could end up with something like
api.modifyClass("controller:user-private-messages", {
@on("userTopicsList.model.topics.length")
showMessagesCTA(length) { return length < 5 }
})